Creación de secuencias de comandos de Visual Studio, implementación de Clickonce, Dotfuscator y Mage

StackOverflow https://stackoverflow.com/questions/617366

Pregunta

El proceso para lanzar mi aplicación al cliente es por el encabezado

  • Construir
  • Implementación de Clickonce
  • ofuscar el ejecutable principal con Dotfuscator
  • Firmar los archivos de manifiesto y .application con mago
  • Zip para la entrega

Me gustaría trabajar en un programa de código abierto para automatizar esto, ya que usa mucho tiempo cada vez que se necesita un lanzamiento para el cliente. Creo que pedir una solución es demasiado;) ¿cuál sería el formato ideal? Batch script, C # application?

¿Alguien sabe de una solución existente para este proceso o está dispuesto a colaborar en una?

¿Fue útil?

Solución

¿Entonces supongo que no estás pensando en usar MSBuild?

Porque eso también viene gratis con .net SDK. Sus proyectos de Visual Studio ya son archivos de proyecto de MSBuild, por lo que puede usarlos y modificarlos para hacer una compilación integrada completa.

Para generar su implementación de ClickOnce, entonces usaría las siguientes tareas de MSBuild:

  • GenerateApplicationManifest
  • GenerateDeploymentManifest
  • Exec
  • SignFile

Debido a algunos problemas, también necesito ejecutar mago después de estos, por ejemplo, para actualizar el manifiesto y firmarlo, uso la tarea Exec para esto:

<!-- Correct the codebase property pointing to the application manifest file -->
<Exec 
  Command="&quot;$(SdkPath)bin\mage&quot; -Update &quot;$(DeploymentManifest)&quot; -AppManifest &quot;$(ApplicationManifest)&quot;" 
  WorkingDirectory="$(PublishDir)" />

<!-- Signing the Deployment manifest -->
<Exec 
  Command="&quot;$(SdkPath)bin\mage&quot; -Sign &quot;$(DeploymentManifest)&quot; -CertFile &quot;$(SolutionRoot)\$(Branch)\Source\esamba.pfx&quot; -Password esamba" 
  WorkingDirectory="$(PublishDir)" />

Espero que esto te ayude.

Otros consejos

¿Por qué no usar una herramienta de compilación como nant que es extensible con tareas personalizadas según sea necesario.

Dado que este es un problema común, es probable que haya tareas predefinidas para la mayoría de las tareas que tiene, y puede llamar fácilmente a otros ejecutables o escribir código personalizado en cualquier lenguaje .NET para agregar tareas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top