2016-10-07 2 views
1

J'ai un paquet nuget avec des outils en ligne de commande que je veux appeler à partir d'un événement de pré-construction dans le projet VS2015.Appel de l'exécutable à partir du dossier du paquet nuget dans un événement de pré-construction dans VS2015

Je pourrais utiliser le chemin relatif pour invoquer la commande du dossier de paquet, mais alors je dois modifier ce chemin si la version de paquet de nuget ou le dossier de paquet change. Y a-t-il un moyen plus facile de faire cela?

+0

pas vraiment. sauf si vous ajoutez vos outils au projet en tant que contenu. Ce qui n'est pas recommandé. – jessehouwing

+0

Grpc.Tools nuget package supprime un tas d'outils de ligne de commande dans les dossiers nuget. Semble bizarre de tout emballer dans nuget sans moyen facile de les utiliser. –

+0

L'astuce consiste à mettre à jour le fichier projet avec le bon chemin lors de l'installation et de la mise à niveau. Ajoutez simplement une cible avec un nom spécifique, de cette façon vous pourrez la supprimer et la rajouter chaque fois que la version change. C'est juste comme ça. Certaines choses ne sont pas faciles. – jessehouwing

Répondre

2

Vous pouvez créer un fichier de commandes dans votre racine de projet pour appeler vos outils, ce qui est similaire au script ci-dessous. Des informations plus détaillées sur l'utilisation d'un outil installé par Nuget dans vos scripts de compilation, s'il vous plaît se référer à:

https://lostechies.com/joshuaflanagan/2011/06/24/how-to-use-a-tool-installed-by-nuget-in-your-build-scripts/

@ECHO OFF 
SETLOCAL 

FOR /R %~dp0\source\packages %%G IN (nunit-console.exe) DO ( 
IF EXIST %%G ( 
    SET TOOLPATH=%%G 
    GOTO FOUND 
) 
) 

IF '%TOOLPATH%'=='' GOTO NOTFOUND 

:FOUND 
%TOOLPATH% %* 
GOTO :EOF 

:NOTFOUND 
ECHO nunit-console not found. 
EXIT /B 1 
+0

C'est la meilleure solution jusqu'à présent. Seules des modifications mineures ont été nécessaires pour mon projet. Surpris que Nuget a dû être "piraté" pour ce cas d'utilisation. –