2009-03-11 3 views
19

Ich glaube, das Problem ist dokumentiert here und sieht aus wie es ein Fehler in Visual Studio sein könnte, aber ich frage mich, ob jemand eine Problemumgehung kennt.

Grundsätzlich habe ich im Prebuild-Event die folgenden 2 Zeilen (unter anderem) direkt nacheinander.

"C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe" /p:configuration=Release;platform=x86 /t:rebuild "$(SolutionDir)Folder1\Project1.csproj" 

"C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe" /p:configuration=Release;platform=x86 /t:rebuild "$(SolutionDir)Folder2\Folder3\Project2.csproj" 

Die erste gelingt und die andere nicht zu sagen, dass "der Befehl "" C: \ WINDOWS \ Microsoft.NET \ Framework \ v3.5 \ MSBuild.exe"/p: Konfiguration = Freigabe; platform = x86/t: Wiederherstellen "* * Undefiniert Folder2 \ Folder3 \ Project2.csproj"“mit dem Code verlassen 1.

(Raum zwischen Astrisk Ursache für SO Formatierung eingefügt)

Edit: war das Problem herausgefunden, dass Eines der anderen Projekte mit der gleichen Zeile wie das Prebuild ist fehlgeschlagen, da MSBuild selbst nichts über die Makros weiß

+0

Autor FYI: Link ist gebrochen (VS-Feedback). – yzorg

Antwort

0

Sie geben nicht an, ob dies bei vielen Projekten oder nur bei ein oder zwei Projekten der Fall ist.

Wenn es nur in einem oder zwei Projekten, eine vorübergehende Lösung könnte $ (SolutionDir) mit dem expliziten Pfad zu ersetzen, die Folder2 befindet sich in beispielsweise so etwas wie:.

"C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe" /p:configuration=Release;platform=x86 /t:rebuild "C:\AllSolutions\ExampleSolutions\Folder2\Folder3\Project2.csproj" 

aber mit Der richtige Pfad für Ihr Projekt.

39

Ich reparierte dies, indem ich alle $(SolutionDir) durch $(ProjectDir)..\. ersetzte.

Es war wegen MSBuild jedes Projekt unabhängig ausgeführt, und thrus nicht die Lösung. Es funktionierte gut in VS2010, aber nicht auf dem Build-Server.

+6

Ich kann nicht glauben, dass dies immer noch ein Problem im Jahr 2015 ist – drzaus

+0

komisch genug, ich habe es etwa 2 Wochen später als Sie, aber kürzlich habe ich vergessen (http://stackoverflow.com/a/20846447/1037948) wusste die Antwort und endete hier – drzaus

+0

das ist, weil es kein Problem ist, bauen Sie die csproj, nicht die Lösung –