645 votes

Comment faire pour exécuter Visual Studio après génération d'événements pour génération de débogage seulement

Comment puis-je limiter mes post-construire des événements à l'exécution que pour un type de build? Je suis en utilisant les événements de copier Dll à un répertoire virtuel IIS mais je ne veux pas ce qui se passe sur le serveur de build en mode release.

817voto

Joseph Daigle Points 16429

Pré - et Post-Construire des Événements exécuter un script batch. Vous pouvez faire une instruction conditionnelle sur $(ConfigurationName).

Par exemple

if $(ConfigurationName) == Debug xcopy something somewhere

557voto

gbjbaanb Points 31045

Pour info, vous n'avez pas besoin d'utiliser goto. la coque SI commande peut être utilisée avec des parenthèses:

if $(ConfigurationName) == Debug (
  copy "$(TargetDir)myapp.dll" "c:\delivery\bin" /y
  copy "$(TargetDir)myapp.dll.config" "c:\delivery\bin" /y
) ELSE (
  echo "why, Microsoft, why".
)

136voto

Franci Penov Points 45358

Ajouter votre événement post-construction comme d'habitude. Puis enregistrez votre projet, de l'ouvrir dans le bloc-notes (ou votre éditeur de texte favori) et ajouter une condition à la PostBuildEvent groupe de la propriété. Voici un exemple:

<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
 <PostBuildEvent>lancer gpedit</PostBuildEvent>
</PropertyGroup>

109voto

GalleySlave Points 1488

sinon (depuis les événements sont mis dans un fichier de commandes & appelait alors), utilisez la commande suivante. (dans l'événement de construction de la boîte, pas dans un fichier de commandes):

if $(ConfigurationName) == Debug goto :debug

:release
signtool.exe ....
xcopy ...

goto :exit

:debug
' debug items in here

:exit

De cette façon, vous pouvez avoir événements pour n'importe quelle configuration, et encore la gestion avec les macros plutôt que d'avoir à les transmettre dans un fichier de commandes et souvenez-vous que %1 $(OutputPath), etc:

5voto

Lou Franco Points 48823

Vous pouvez passer le nom de la configuration à la post-script de construction et de vérifier pour voir si il doit s'exécuter.

Passer le nom de la configuration avec $(ConfigurationName)

Vérifier qu'il est basé sur la façon dont vous la mise en œuvre de l'étape de post-construction -- ce sera un argument de ligne de commande

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X