2016-07-20 15 views
1

Ich versuche, die sfproj mit Msbuild auf meinem Build-Rechner zu bauen, das ist was ich mache.sfproj - outpath Erstellungsfehler

<target ="package"> 
<foreach item="File" property="sfproj"> 
      <in> 
       <items refid="servicefabric.files.sfproj" /> 
      </in> 
      <do> 
       <exec program="${msbuild14.exe}"> 
        <arg value="${sfproj}" /> 
        <arg value="/p:Configuration=${config}" /> 
        <arg value="/p:Platform=x64" /> 
        <arg value="/target:Package" /> 
       </exec> 
      </do> 
     </foreach> 
</target> 

Der Fehler Iam auf dem Build-Maschine bekommen ist

(_CheckForInvalidConfigurationAndPlatform Ziel) -> 10.25.10 [exec] C: \ Program Files (x86) \ MSBuild \ 14.0 \ bin \ Microsoft.Common.CurrentVersion.targets (724,5): Fehler: Die OutputPath-Eigenschaft ist nicht für das Projekt 'App.sfproj' festgelegt. Stellen Sie sicher, dass Sie eine gültige Kombination aus Konfiguration und Plattform für dieses Projekt angegeben haben. Konfiguration = 'Debug' Platform = 'x64'. Diese Nachricht wird möglicherweise angezeigt, weil Sie versuchen, ein Projekt ohne eine Lösungsdatei zu erstellen, und eine nicht standardmäßige Konfiguration oder Plattform angegeben haben, die für dieses Projekt nicht existiert.

+0

Mit welcher Projektversion arbeiten Sie (überprüfen Sie die ProjectVersion-Eigenschaft in der .sfproj-Datei)? Wenn es 1.1 ist, haben Sie sichergestellt, dass die NuGet-Pakete des Projekts wiederhergestellt werden? –

+0

Ja Nuget-Wiederherstellung ist vor diesem Schritt erfolgt. – Senthil

+0

Es wäre gut, wenn das vollständige Build-Protokoll mit Diagnose-Ausführlichkeit aktiviert wäre ("/ Ausführlichkeit: Diagnose" MSBuild-Schalter). –

Antwort

1

Es scheint, dass das Nuget-Paket Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.1.0 ein MSBuild-Ziel enthält, das das Erstellen des sfproj selbst überspringt (das oder bestimmte Optionen vorhanden sind, damit es erfolgreich ist).

In meinem Fall hatte ich versehentlich einige Nuget-Paketordner in die Quellcodeverwaltung eingecheckt, die unvollständig waren. Visual Studio hat den Ordner erkannt, sodass er nicht erneut heruntergeladen werden musste. Sie müssen sicherstellen, dass der Ordner build vorhanden ist und eine MSBuild-Zieldatei enthält. Am besten ist es, den Paketordner vollständig zu löschen, um sicherzustellen, dass Sie mit einem Neustart beginnen.

https://ijustwrite.software/2016/07/20/ouputpath-property-not-set/

1

Ich lief in ein Problem mit den gleichen Symptomen. Es ist mir nach dem Upgrade des Azure SDK passiert, aber es scheint mir, dass es leicht auf verschiedene Arten passieren könnte. Das Problem ist, dass es zwei Pfade in der sfproj-Datei gibt, die in das Verzeichnis führen, in dem nuget-Pakete gespeichert sind, seltsamerweise in der ersten und letzten Zeile der Datei. Dies führt zu Problemen, da Sie möglicherweise überschrieben haben, wo Nuget-Pakete gespeichert sind (dies ist nicht ungewöhnlich). Da es sich um relative Pfade handelt, ist es für nuget einfach, die Pakete an die von Ihnen angegebene Stelle zu bringen, die Zeilen im Projekt jedoch stattdessen auf ".. \ packages" zu verweisen, wodurch Visual Studio die Pakete wiederherstellen möchte denke nie, dass sie wiederhergestellt wurden, da sie am falschen Ort gesucht werden.

Um alles zu korrigieren, müssen Sie die Pfade in der sfproj-Datei so ändern, dass sie auf alle Pakete verweisen, die Sie zum Herunterladen von nuget-Paketen ausgewählt haben (diese Einstellung befindet sich in der Datei nuget.config, die sich in einem beliebigen Verzeichnis befinden kann) Ihr Projektverzeichnis).

Dies sind die beiden gestrichelten Linien in meiner sfproj Datei:

<Import Project="..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.3.0\build\Microsoft.VisualStudio.Azure.Fabric.Application.props" Condition="Exists('..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.3.0\build\Microsoft.VisualStudio.Azure.Fabric.Application.props')" /> 
<Import Project="..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.3.0\build\Microsoft.VisualStudio.Azure.Fabric.Application.targets" Condition="Exists('..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.3.0\build\Microsoft.VisualStudio.Azure.Fabric.Application.targets')" /> 

Da ich den Wert ThirdPartyLibraries \ NuGetPackages in meiner nuget.config-Datei (die zwei Verzeichnisse über meine Projektdatei ist), hatte diese Zeilen geändert werden, um die folgenden zu sein, um wieder zu arbeiten:

<Import Project="..\..\ThirdPartyLibraries\NuGetPackages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.3.0\build\Microsoft.VisualStudio.Azure.Fabric.Application.props" Condition="Exists('..\..\ThirdPartyLibraries\NuGetPackages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.3.0\build\Microsoft.VisualStudio.Azure.Fabric.Application.props')" /> 
<Import Project="..\..\ThirdPartyLibraries\NuGetPackages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.3.0\build\Microsoft.VisualStudio.Azure.Fabric.Application.targets" Condition="Exists('..\..\ThirdPartyLibraries\NuGetPackages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.3.0\build\Microsoft.VisualStudio.Azure.Fabric.Application.targets')" /> 

Und das behebt es richtig. Ich hatte Glück: Ich hatte zwei sfproj-Dateien, eine mit dieser Ausgabe und eine ohne, also musste ich nur die Schwierigkeiten sehen.