2012-12-20 4 views
32

Ich versuche, ein csproj-Projekt mit msbuild zu erstellen, habe aber alle möglichen seltsamen Probleme damit, sich über nuget.targets zu beschweren.MSBuild-Fehler bei der Suche nach der nuget.targets-Datei

Ich betreibe die einfachsten Befehlszeile baut mit MSbuild:

Msbuild Project.csproj 

Und das funktioniert in meinem normalen dev Ordner, sondern in einem anderen Ordner, schlägt es mit diesen Fehlern:

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.

Dieser Pfad (C:\BuildAgent\work\CableSense\.nuget\nuget.targets) ist eigentlich falsch und fehlt ein Ordner nach der Arbeit (work \ somefolder \ cablensense), aber ich bin ratlos warum. Komischerweise, wenn ich ein anderes Projekt, das Teil der Lösung ist, bauen, dann funktioniert das, es ist nur dieses Projekt.

Die csproj den Standort der nuget.targets gibt Datei wie folgt aus:

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

Und die SolutionDir ist wie so definiert:

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

Welches ist das gleiche wie das andere Projekt, das tut Arbeit. Irgendwelche Ideen?

Antwort

54

Argh! Nachdem ich das gepostet habe, habe ich das Problem gefunden. Grundsätzlich hatte das Projekt Abhängigkeiten zu anderen Projekten. Die csproj Dateien für diese Projekte waren etwas falsch - und hatte dies als SolutionDir:

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

Welche verursacht dann das Problem! Hoffe, das hilft jemand anderem dort, ich fühle mich schlecht, meine eigene Frage jetzt zu beantworten.

+10

Nun, Matt, du hast gesagt, dass das Problem verursacht hat, aber du hast nicht gesagt, wie du es repariert hast. Ich habe das gleiche Problem, und wenn ich Ihre Antwort ansehe, weiß ich immer noch nicht, was ich tun soll, um dieses Problem zu lösen. – Stack0verflow

+5

Überprüfen Sie im Allgemeinen diese verwandten Projekte, um festzustellen, ob der Pfad, der verwendet wird, wenn SolutionDir nicht vorhanden ist, korrekt ist (in diesem Post ist das ../../CableSense, das falsch war) –

+0

Oh nein, ich habe das gleiche Problem . Gibt es eine Möglichkeit, das Lösungsverzeichnis automatisch zu fixieren? Ich habe eine Menge csproj-Dateien zu bearbeiten, wenn nicht :-( –

3

OK, also habe ich vor kurzem denselben Fehler bekommen, aber die Lösung hat sich für mich geändert.

In der Build-Definition, unter Source Settings, hatte ich den Source Control Folder auf das Verzeichnis des tatsächlichen Projekts anstelle des Stammordners für die Lösung festgelegt.

Ich weiß, dass dies ein alter antwortender Thread ist, aber dies könnte jemandem helfen, der den gleichen Fehler gemacht hat wie ich.

0

für mich habe ich gerade den Lösungsort geändert, um einen kurzen Standort zu haben.