visual vista usar tutorial studio previa para linea iconos extensiones espaƱol configurar como code ajuste visual-studio msbuild build-automation custom-build

visual-studio - vista - visual studio code



Ejecutar una herramienta personalizada de Visual Studio en tiempo de compilaciĆ³n (3)

¿Has intentado agregar un paso de Exec en el paso Antes / Después de construir en tu csproj? Tienes que editar manualmente el archivo para esto, pero eso debería resolver tu problema.

No estoy del todo claro si quieres que esto se haga antes o después de la compilación. Si lo necesita algún día después de Pass1 / Pass2, puede conectar directamente con los objetivos. Intente buscar en Microsoft.Build.Common.Targets para tener una idea de cómo hacer esto.

Tengo un script que convertirá un archivo de texto en un archivo de recursos, de modo que pueda tener soporte para múltiples idiomas al tener archivos de texto para diferentes idiomas convertidos en diferentes recursos. Una vez que ejecuto el script para obtener el archivo resx, entonces tengo que ejecutar una herramienta de compilación personalizada (como se describe aquí: Enlace a Code Project ) para crear los archivos Designer.cs para usar los nuevos archivos.

De acuerdo con la filosofía de que debería ser capaz de construir todo el proyecto con un solo clic, ¿cómo puedo eliminar el paso donde tengo que llamar explícitamente a la herramienta de compilación personalizada para hacer que los archivos de código subyacente?

Intenté eliminar automáticamente los archivos Designer.cs como un paso previo a la compilación, ya que pensaría que la herramienta de compilación personalizada se ejecutaría automáticamente si no hubiera archivos Designer.cs, pero no dados.

Por lo tanto, quiero que mi script de compilación en Visual Studio / msbuild lo haga: 1) convertir texto a resx (hecho) 2) mover archivos resx al directorio apropiado (listo) 3) crear archivos designer.cs usando una herramienta de compilación personalizada (no hecha) )

Es ese último paso ...


Hay una forma de generar * .Designer.cs para * .resx como parte del proceso de compilación. Hay una tarea incorporada de MSBuild GenerateResource , que básicamente es un envoltorio alrededor de la herramienta SDK resgen.exe. Aquí puede encontrar un ejemplo de cómo usarlo.

Otra cosa que le resultaría útil, si la versión generada * .Designer.cs no es correcta, básicamente, la tarea GenerateResource no está llamando a la versión deseada de resgen.exe, estableciendo que la propiedad SdkToolsPath podría ayudarlo.


Lamentablemente, no creo que haya una manera fácil de hacerlo. Las herramientas de compilación personalizadas solo se ejecutan desde VS.NET; no se ejecutan cuando construyes tu proyecto usando MSBuild desde la línea de comandos.

En general, si tiene la opción de escribir una herramienta de compilación como una herramienta de compilación del cliente o una tarea MSBuild, elija la tarea MSBuild cada vez que estas tareas se ejecutarán en VS.NET y desde la línea de comandos.

Los archivos designer.cs para recursos están ahí para respaldar su codificación. Le otorgan acceso fuertemente tipado en el archivo de recursos. Por lo tanto, siempre y cuando cree sus recursos invariantes de cultivo en VS.NET (y deje que cree los archivos .designer.cs), entonces agregar soporte de idioma adicional más adelante (archivos .resx adicionales) debería funcionar bien.

Sin embargo, si tus archivos de texto son tus archivos de recursos principales y estás agregando nuevas cadenas de recursos en estos archivos de texto primero, entonces necesitarás encontrar otra forma de generar archivos .cs que te permitan codificar contra esos recursos. Si TIENE que hacerlo, generar el archivo .designer.cs usted mismo (o algo similar) no sería tan difícil. Con CodeDom o T4 puede crear la clase auxiliar, utilizando un archivo .designer.cs existente como plantilla.