2016-04-19 11 views
0

Ich betreiben einen MSBuild Schritt in meiner Builddefinition auf VSTS die Microsoft.Common.CurrentVersion.targets verwendet, und ich bin das Bestehen des OutDir Parameters, um es alsMSBuild Argument Parameter von Ziel enthält, führt Fehler in VSTS

/t:Package /p:OutDir="..\artifacts\bin\$(_SGenDllName)\Release\dnx451"

ich versuche, das OutDir Argument enthält einen Parameter zu übergeben, die in Microsoft.Common.CurrentVersion.targets gültig ist, aber ich erhalte die folgende Fehlermeldung:

C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(3963,5): 
Error MSB3030: Could not copy the file "C:\agent\_work\2\s\MyApp\artifacts\bin\ 
       $(_SGenDllName)\Release\dnx451\MyApp.Api.dll" because it was not found. 

wie esgelesenwörtlich, anstatt es für 'MyApp' zu ersetzen

Die Frage ist also ist es möglich, ein Argument an MSBuild übergeben, die einen Verweis auf einen Parameter innerhalb des Ziels enthält?

+0

Ich denke, dass die Frage für alle Stapelbefehle relevant ist, was ist% (_ SGenDllName)% als Variable? –

+1

'$ (_ SGenDllName)' ist die Msbuild-Syntax zum Erweitern von Eigenschaften, der Befehl, den Sie anzeigen, wird in der Befehlszeile aufgerufen, die eine andere Syntax verwendet und wahrscheinlich nicht weiß, was _SGenDllName ist. Sah herum und Ihre Frage ist im Grunde ein Duplikat von http://StackOverflow.com/Questions/34442883 – stijn

+0

Mögliche Duplikate von [Use $ (SolutionName) in den MsBuild Kommandozeilenparameter] (http://StackOverflow.com/Questions/34442883/ use-Lösungsname-in-der-Msbuild-Kommandozeilenparameter) – stijn

Antwort

0

Wie stijn in den Kommentaren hingewiesen, mit $(_SGenDllName) war, wo ich falsch ging.

Ich vertauschte das für $(TargetName) und es funktionierte.

Verwandte Themen