Creazione di script Visual Studio, distribuzione Clickonce, Dotfuscator e Mage
-
03-07-2019 - |
Domanda
Il processo per il rilascio della mia domanda al client è per intestazione
- Crea
- Implementazione di Clickonce
- Offuscando l'eseguibile principale con Dotfuscator
- Firma dei file manifest e .application con mage
- Zip per consegna
Mi piacerebbe lavorare su un programma opensource per automatizzare questo dato che impiega molto tempo ogni volta che è necessaria una versione per il client. Penso che chiedere una soluzione sia un po 'troppo;) quindi quale sarebbe il formato ideale? Script batch, applicazione C #?
Qualcuno è a conoscenza di una soluzione esistente per questo processo o è disposto a collaborare su uno?
Soluzione
Quindi suppongo che non stia esaminando l'utilizzo di MSBuild?
Perché anche questo viene fornito gratuitamente con .net SDK. I tuoi progetti Visual Studio sono già file di progetto MSBuild, quindi puoi usarli e modificarli per creare una build integrata completa.
Per generare la tua distribuzione ClickOnce, dovrai utilizzare le seguenti attività di MSBuild:
- GenerateApplicationManifest
- GenerateDeploymentManifest
- Exec
- SignFile
A causa di alcuni problemi ho anche bisogno di eseguire Mage dopo questi, ad esempio per aggiornare il manifest e firmarlo, per questo utilizzo il Task Exec:
<!-- 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)" />
Spero che questo ti aiuti.
Altri suggerimenti
Perché non utilizzare uno strumento di creazione come nant che è estensibile con attività personalizzate, se necessario.
Dato che questo è un problema comune, ci sono probabilmente attività predefinite per la maggior parte delle attività che hai, e puoi facilmente chiamare altri eseguibili o scrivere codice personalizzato in qualsiasi linguaggio .NET per aggiungere attività.