Pouvons-nous exécuter un fichier .bat en ligne de commande d'événement post-build dans Visual Studio?
Bien sûr, voici un exemple:
call "$(SolutionDir)scripts\copyifnewer.bat" "$(SolutionDir)libs\RLPL.Services.CertificateValidator.Basic.dll" "$(TargetDir)RLPL.Services.CertificateValidator.Basic.dll"
call "$(SolutionDir)scripts\copyifnewer.bat" "$(SolutionDir)libs\RLPL.Services.CertificateValidator.Common.dll" "$(TargetDir)RLPL.Services.CertificateValidator.Common.dll"
Soyez conscient de deux problèmes possibles:
les guillemets doubles (voir comment chaque partie est entourée de "
signe)
si vous voulez appeler 2 fichiers batch ou plus, assurez-vous d'utiliser la commande call
sinon vous aurez du mal à trouver pourquoi la deuxième batte ne fait pas son travail
Oui, en lui ajoutant un appel dans l'éditeur d'événements post-build.
Si vous accédez à la page Propriétés de votre projet, vous devez sélectionner l'onglet Générer des événements. Vous pouvez taper l'appel à votre fichier de commandes dans la zone de texte ligne de commande d'événement post-build.
Si vous souhaitez vous référer au fichier de commandes en utilisant les chemins inclus dans le projet ou la solution, vous pouvez cliquer sur le bouton Edit Post-Build .... Cela ouvrira la boîte de dialogue Ligne de commande d'événement post-génération.
Cette boîte de dialogue comporte un bouton Macros >> sur lequel vous pouvez cliquer. Il vous montrera toutes les macros disponibles que vous pouvez utiliser pour faire référence aux dossiers et fichiers de votre solution.
Lorsque vous sélectionnez l'une de ces macros, vous pouvez utiliser le bouton Insérer pour les insérer dans votre script.
En plus d'appeler un fichier .bat, vous pouvez entrer des commandes par lots (c'est-à-dire les commandes normales disponibles à partir de la console Windows - cmd.exe) directement dans les champs Pré-génération/Post-génération. Cela peut être préférable car cela signifie que vous n'avez pas à gérer le fichier de commandes séparément, car toutes vos commandes feront partie du projet.