Ho un progetto C# in cui includo alcune risorse che ho bisogno di fare riferimento utilizzando la classe Uri. Per questo problema specifico ho alcuni shader collocati in una cartella "Shaders" nella radice del progetto, ma ho avuto questo problema prima con altri file come immagini, ecc. Finora ho usato la soluzione semplice dando un fisso percorso assoluto e assicurandosi che il file sia presente in quella posizione. Inutile dire che - questa non è una buona soluzione, e non funzionerà nel lungo periodo ...Lavorare con percorsi di file relativi a .Net
Così, come posso utilizzare i percorsi relativi per riferirsi mie risorse? Credo che la mia domanda sia duplice:
Primo; Non voglio riferire il percorso relativo dalla mia cartella Debug alla cartella del progetto. Voglio che il file sia copiato nella cartella build. Gli shader sono inclusi nel progetto, ma ovviamente questo non è abbastanza. Come faccio a dire al progetto di copiare i file durante la costruzione? O; qual è il modo comune per risolvere questo?
secondo; quando ho la cartella "Shaders" copiata nella mia cartella di compilazione - quale sintassi Uri devo usare per fare riferimento ad es. "myShader.ps" inserito in questa cartella? Posso semplicemente dire
file:///Shaders/myShader.ps
?
È strano che dobbiamo ricorrere alla riflessione. Non tutti gli ambienti lo accetteranno. Inoltre (anche se stiamo andando alla deriva dalla domanda esatta qui) e se l'URI è relativo a qualunque directory è corrente, invece di essere relativo alla posizione dell'assembly? –