28 votes

Erreur de MSBuild trouvant le fichier nuget.targets

J'essaie de construire un projet csproj avec msbuild, mais j'ai toutes sortes de problèmes bizarres avec lui se plaignant de ne pas trouver nuget.targets.

J'exécute la plus simple des constructions en ligne de commande avec MSbuild :

Msbuild Project.csproj

Et cela fonctionne dans mon dossier de développement normal, mais dans un autre emplacement de dossier, il échoue avec ces erreurs :

error MSB4019: The imported project "C:\BuildAgent\work\CableSense\.nuget\nuget.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

Ce chemin ( C:\BuildAgent\work\CableSense\.nuget\nuget.targets ) est en fait faux et il manque un dossier après le travail (travail \somefolder\cablesense ), mais je ne sais pas pourquoi. Plus bizarrement, si je construis un autre projet qui fait partie de la solution, alors cela fonctionne, c'est juste ce projet.

Le csproj spécifie l'emplacement du fichier nuget.targets comme suit :

<Import Project="$(SolutionDir)\.nuget\nuget.targets" />

Et le SolutionDir est défini comme suit :

<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>

Ce qui revient au même que l'autre projet qui fonctionne. Des idées ?

48voto

Matt Roberts Points 5488

Argh ! Après avoir posté ceci, j'ai trouvé le problème Fondamentalement, le projet avait des dépendances sur d'autres projets. Les fichiers csproj pour ces projets connexes étaient légèrement erronés - et avaient ceci comme SolutionDir :

<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\CableSense\</SolutionDir>

Ce qui a provoqué le problème ! J'espère que cela aidera quelqu'un d'autre, je me sens mal d'avoir répondu à ma propre question maintenant.

3voto

Talon Points 518

OK, j'ai eu la même erreur récemment mais la solution a été différente pour moi.

Dans la définition de la construction, sous Paramètres de la source, j'avais défini le Dossier de contrôle de la source comme étant le répertoire du projet actuel au lieu du dossier racine de la solution.

Je sais que c'est un vieux fil de discussion, mais cela pourrait aider quelqu'un qui a fait la même erreur que moi.

0voto

MNF Points 307

Pour moi, j'ai juste changé l'emplacement de la solution, afin d'avoir un emplacement court.

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