Estoy acostumbrado a incorporar recursos en C# y me gusta la forma en que agrega automáticamente espacios de nombres a los recursos incrustados. Eso me permite hacer cosas como esta:Agrega espacio de nombres automáticamente en función de la ruta a los recursos incrustados de VB.NET
files\version1\config.xml
files\version2\config.xml
files\version2\config.xml
Por desgracia, si se intenta la misma en un proyecto VB.NET que obtendrá errores de compilación, ya que trata de poner todos los recursos incrustados en el espacio de nombres raíz. Para evitar esto puedo editar manualmente el archivo .vbproj
así:
<EmbeddedResource Include="files\version1\config.xml">
<LogicalName>$(RootNamespace).files.version1.config.xml</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="files\version2\config.xml">
<LogicalName>$(RootNamespace).files.version2.config.xml</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="files\version3\config.xml">
<LogicalName>$(RootNamespace).files.version3.config.xml</LogicalName>
</EmbeddedResource>
Aunque esto funciona, es manual, lento y propenso a errores, por lo que mi pregunta es la siguiente: Puede una tarea de construcción o construir caso escribirse qué esto automáticamente?
Supongo que simple depende de cómo se mire. Agregar un proyecto completamente diferente solo para lograr esto es fácil, sí, pero no lo llamaría simple. Sin mencionar el hecho de que tendría que distribuir otro dll o combinarlos después de la compilación. Votaré esto como una alternativa, pero no puedo aceptarlo como la respuesta ya que estoy buscando una tarea de compilación o un evento de compilación que pueda lograr esto dentro del mismo proyecto. –
En verdad, no me gusta agregar demasiadas DLL. ¿Qué pasa con mantener todos sus archivos en un formato similar al que tiene? pero luego solo escriba un script VBS corto que pueda recorrer las carpetas "Versión ..." y anexarlas juntas en un directorio de salida. Simplemente agregue un cheque para ver que el archivo haya cambiado primero para que no vuelva a escribir cada archivo cada vez. Una vez que haya marcado todos esos archivos, los recursos incrustados que los sobrescriban no lo restablecerán. De nuevo, es más una tirita y luego una forma adecuada de hacerlo, pero al menos podrías quitar la parte manual. – DarrenMB