Question

Le processus de publication de ma demande au client est conforme à l'en-tête

.
  • Construire
  • Déploiement en une seule fois
  • obscurcir l'exécutable principal avec Dotfuscator
  • Signature du fichier manifeste et des fichiers .application avec mage
  • Zip pour la livraison

J'aimerais travailler sur un programme opensource pour automatiser ce processus, car il prend beaucoup de temps chaque fois qu'une version est nécessaire pour le client. Je pense que demander une solution, c'est beaucoup;) alors quel serait le format idéal? Script batch, application C #?

Quelqu'un a-t-il connaissance d'une solution existante pour ce processus ou est-il disposé à collaborer sur celle-ci?

Était-ce utile?

La solution

Donc, je suppose que vous n’envisagez pas d’utiliser MSBuild?

Parce que cela est également gratuit avec le SDK .net. Vos projets Visual Studio sont déjà des fichiers de projet MSBuild. Vous pouvez donc les utiliser et les modifier pour créer une construction intégrée complète.

Pour générer votre déploiement ClickOnce, vous devez ensuite utiliser les tâches MSBuild suivantes:

  • GenerateApplicationManifest
  • GenerateDeploymentManifest
  • Exec
  • SignFile

À cause de certains problèmes, j’ai également besoin d’exécuter mage après ceux-ci, par exemple pour mettre à jour le manifeste et le signer, j’utilise la tâche Exec pour cela:

<!-- 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)" />

J'espère que cela vous aide.

Autres conseils

Pourquoi ne pas utiliser un outil de construction tel que nant , qui est extensible avec des tâches personnalisées en fonction des besoins.

Comme il s'agit d'un problème courant, il existe probablement des tâches prédéfinies pour la plupart des tâches que vous avez, et vous pouvez facilement appeler d'autres exécutables ou écrire un code personnalisé dans n'importe quel langage .NET pour ajouter des tâches.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top