Tengo un proyecto de C# donde incluyo algunos recursos que debo consultar usando la clase Uri. Para este problema específico, tengo algunos sombreadores colocados en la carpeta "Shaders" en la raíz del proyecto, pero he tenido este problema antes con otros archivos como imágenes, etc. Hasta ahora, he utilizado la solución simple que proporciona una solución ruta absoluta, y asegurándose de que el archivo esté presente en esa ubicación. Huelga decir que esta no es una buena solución, y no funcionará en el largo plazo ...Trabajando con rutas de archivos relativas en .Net
Entonces, ¿cómo puedo usar rutas relativas para referir mis recursos? Supongo que mi pregunta es doble:
Primero; No quiero referir la ruta relativa desde mi carpeta Debug a la carpeta del proyecto. Quiero que el archivo se copie a la carpeta de compilación. Los sombreadores están incluidos en el proyecto, pero obviamente esto no es suficiente. ¿Cómo le digo al proyecto que copie los archivos al compilar? O; ¿Cuál es la forma común de resolver esto?
Segundo; cuando tengo copiada la carpeta "Shaders" en mi carpeta de compilación, ¿qué sintaxis de Uri utilizo para referirme, p. "myShader.ps" colocado dentro de esta carpeta? ¿Puedo simplemente decir
file:///Shaders/myShader.ps
?
Es extraño que tengamos que recurrir a la reflexión. No todos los entornos aceptarán eso. Además (aunque estamos derivando de la pregunta exacta aquí), ¿qué ocurre si el URI está relacionado con el directorio actual, en lugar de ser relativo a la ubicación del ensamblado? –