Scripting Visual construção Studio, implantação Clickonce, Dotfuscator e Mago
-
03-07-2019 - |
Pergunta
O processo para liberar a minha candidatura para o cliente é pelo título
- build
- implantação Clickonce
- Ofuscando o executável principal com Dotfuscator
- A assinatura dos arquivos de manifesto e .application com mago
- Zip para entrega
Eu gostaria de trabalhar em um programa de código aberto para automatizar isso, pois usa um monte de toda vez que um lançamento é necessário para o cliente. Eu acho que pedindo uma solução é um pouco demais;), de modo que seria o formato ideal? script em lotes, aplicativo C #?
Alguém tem conhecimento de uma solução existente para este processo ou dispostos a colaborar em um?
Solução
Então eu acho que você não está olhando para usar MSBuild?
Porque isso também vem livre com o SDK do .net. Seus projetos do Visual Studio já são arquivos de projeto MSBuild, para que você possa usá-los e modificá-los para fazer uma compilação completa e integrada.
Para gerar sua implantação ClickOnce, você iria em seguida, usar as seguintes tarefas MSBuild:
- GenerateApplicationManifest
- GenerateDeploymentManifest
- Exec
- SignFile
Por causa de alguns problemas Eu também preciso executar mago após estes, por exemplo, para atualizar o manifesto e assiná-lo, eu uso a tarefa Exec para isso:
<!-- Correct the codebase property pointing to the application manifest file -->
<Exec
Command=""$(SdkPath)bin\mage" -Update "$(DeploymentManifest)" -AppManifest "$(ApplicationManifest)""
WorkingDirectory="$(PublishDir)" />
<!-- Signing the Deployment manifest -->
<Exec
Command=""$(SdkPath)bin\mage" -Sign "$(DeploymentManifest)" -CertFile "$(SolutionRoot)\$(Branch)\Source\esamba.pfx" -Password esamba"
WorkingDirectory="$(PublishDir)" />
Espero que isso ajude você.
Outras dicas
Por que não usar uma ferramenta de construção como nant que é extensível com tarefas personalizadas conforme necessário.
Uma vez que este é um problema comum é provável tarefas predefinidas para a maioria das tarefas que você tem, e você pode facilmente chamar outros executáveis ??ou código personalizado escrever em qualquer linguagem .NET para adicionar tarefas.