Je suis actuellement en train d'empaqueter un paquet de nuget pour mon code generator project et je suis allé jusqu'à inclure un exécutable dans le répertoire tools
et une cible de construction dans le processus.Construire le chemin des outils cibles
partielle de la Nuspec
<files>
<file src="cgbr.targets" target="build\cgbr.targets" />
<file src="cgbr.json" target="content\cgbr.json" />
<file src="..\bin\CGbR.Lib.dll" target="lib\CGbR.Lib.dll" />
<file src="..\bin\cgbr.exe" target="tools\cgbr.exe" />
</files>
Contenu du fichier cgbr.targets
<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="BeforeBuild">
<Exec Command="cgbr.exe $(ProjectDir)"/>
</Target>
</Project>
Maintenant, quand j'installer le paquet, je vois qu'il est inclus dans le processus de construction. Malheureusement, le chemin vers cgbr.exe
est invalide et je suis un peu coincé. Bien sûr, je pourrais utiliser $(SolutionDir)packages\CGbR.0.3\tools\cgbr.exe
mais que je devrais modifier à chaque fois que je change la version.
Pour clarifier: J'ai besoin du chemin vers le chemin d'outils de mon paquet.
Edit: a trouvé un related post
Le chemin relatif est bon, mais j'ai besoin d'un chemin relatif vers mon répertoire de paquetage de nuget. – Toxantron
@Toxantron A droite, mais il n'y a pas de notion de "mon répertoire de paquets de nuget" dans msbuild. Il y a cependant quelque chose pour l'emplacement du fichier actuel, qui se trouve dans le répertoire de votre paquet nuget. Si votre fichier proj est dans le répertoire "build" du paquet, alors le répertoire du paquet nuget est "$ (MSBuildThisFileDirectory) .." et vous pouvez trouver n'importe quoi à partir de là. –
Maintenant je l'ai. Tu es un génie! Merci beaucoup l'homme! ;) – Toxantron