Beim Erstellen meiner Jenkins / MSBuild-Lösung wird dieser Fehler angezeigt
c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(483,9): error :
The OutputPath property is not set for project '<projectname>.csproj'. Please check to
make sure that you have specified a valid combination of Configuration and Platform
for this project. Configuration='Latest' Platform='AnyCPU'. You may be seeing this
message because you are trying to build a project without a solution file, and have
specified a non-default Configuration or Platform that doesn't exist for this project.
[C:\<path>\<projectname>.csproj]
Irgendwelche Ideen?
BEARBEITEN
Ich habe dies in meiner .csproj-Datei
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Latest|AnyCPU'">
<OutputPath>bin\Latest\</OutputPath>
</PropertyGroup>
Antworten:
Öffnen Sie Ihr csproj in einem Texteditor und prüfen Sie, ob Sie einen Eigenschaftsgruppenabschnitt haben, der ungefähr so aussehen sollte:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Latest|AnyCPU' "> <DebugSymbols>true</DebugSymbols> <DebugType>full</DebugType> <Optimize>false</Optimize> <OutputPath>bin\Latest\</OutputPath> <DefineConstants>DEBUG;TRACE</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <TreatWarningsAsErrors>true</TreatWarningsAsErrors> </PropertyGroup>
Haben Sie eine "neueste" Build-Konfiguration? Wenn nicht, fügen Sie den obigen Abschnitt zum csproj hinzu.
quelle
Ich habe herausgefunden, wie es funktioniert (ohne die Eigenschaften von sln / csproj in VS2013 / 2015 zu ändern).
/p:ConfigurationPlatforms=Release /p:Platform="Any CPU"
/p:Configuration=Release /p:Platform=AnyCPU
"Any CPU"
vsAnyCPU
C:\Windows\Microsoft.NET\Framework64\v4.0.30319
Es kann jedoch anders sein, wie Sie sehen können. Microsoft hat 6 cmd-Optionen zum Erstellen von Code base :: AMD (mit den Optionen cross plt, x86 und x64) und Windows (cross, x86, x64) angegeben, und dies auch, wenn die Codeentwicklung standardmäßig erfolgte JIT (es kann PreJIT ngen.exe, econoJIT sein)Ich denke, mehr als diese Fehlerbehebung kann mit Power Shell + msbuild behandelt werden. Kann für jemanden hilfreich sein ...
quelle
Wie durch Perlyking erwähnt, anstatt das csproj XML zu bearbeiten, hat das Folgende für mich funktioniert. Hier sind die Schritte, die ich verwendet habe.
quelle
So fügen Sie zu dem, was @James sagte, fand ich , dass , wenn ich an den Projekt Compile Eigenschaften in VS2013 sehe, der Build - Ausgabepfad wurde angegeben. Als ich die
.csproj
Datei jedoch direkt untersuchte ,OutputPath
fehlte das Element für die entsprechende Build-Konfiguration. Also habe ich in VS einfach eine kleine Änderung am Ausgabepfad vorgenommen und rückgängig gemacht, sie gespeichert, und das hat den Wert in die Projektdatei geworfen, und ich konnte dann erstellen.quelle
Ich habe diesen Fehler nur erhalten, als ich mein Webprojekt veröffentlicht habe. Ich habe beim Einrichten des Veröffentlichungsprofils fälschlicherweise die falsche Build-Konfiguration ausgewählt.
quelle
Ich hatte das gleiche Problem. Ich habe meine Windows-Plattform über die Befehlszeile aktualisiert. Derzeit wurde ich auf [email protected] Version aktualisiert. Dann müssen Sie nach dem Dateinamen "SQLite3.UWP.vcxproj" suchen. Versuchen Sie, "v141" in "v140" zu ändern. Derzeit verwende ich Visual Studio 2015 Professional. Wenn es sich um Visual Studio 2017 handelt, muss die Version in der Datei SQLite3.UWP.vcxproj nicht geändert werden.
quelle
In meinem Fall ist dieser Fehler aufgetreten, weil der Ausgabeordner einen Punkt enthielt, um ihn relativ zum aktuellen Verzeichnis zu machen. Das Problem wurde durch Entfernen des Punktes gelöst.
Die Beleidigung
Build output path
war:.\bin\Output
Das Problem wurde durch Ändern in gelöst
bin\Output
Der Build-Ausgabepfad befindet sich auf der
Build
Registerkarte der Projekteigenschaften. Für jede Kombination vonConfiguration
und gibt es einen anderen PfadPlatform
.quelle
Hatte gerade das Problem mit einigen Service Fabric-Dingen in MSBuild.
Der erste Schritt bestand darin, mit der rechten Maustaste auf jedes betroffene Projekt zu klicken und dessen Eigenschaften aufzurufen, die Registerkarte Erstellen auszuwählen und dann das Plattformziel auf x64 festzulegen.
Der zweite Schritt bestand darin, in den Konfigurationsmanager zu wechseln und jedes Projekt so einzustellen, dass auch x64 für Debug und Release verwendet wird.
Dies war für ein VS2017-Projekt.
quelle
Ich habe MSBuild zum Erstellen mehrerer SLN-Dateien verwendet und einen neuen Schritt zum Erstellen einer CSsproj-Datei hinzugefügt, als dieser Fehler auftrat.
@ Saurabhs Antwort hob die Wurzel des Problems hervor. Beim
/p:Platform=AnyCPU
Beheben des Abschnitts zum Abschnitt MSBuild-Argumente wurde das Problem jedoch nicht behoben. Ich musste den Plattformwert im Build-Schritt tatsächlich aktualisieren.Alle anderen Erstellungsschritte verwendeten den
$(BuildPlatform)
Variablenwert (der zufällig "jede CPU" mit einem Leerzeichen darin war).(Hätte ich mehrere .csproj-Dateien erstellt, hätte ich wahrscheinlich eine zweite Variable für die AnyCPU-Plattform erstellt.)
quelle
Ich hatte das gleiche Problem bei einigen Projekten. Nach dem Hinzufügen einer neuen Konfiguration zu den Projekten wurde die PropertyGroup ganz am Ende der Projektdatei hinzugefügt.
Verschieben der PropertyGroup nach rechts nach allen anderen Konfigurationen PropertyGroup hat das Problem behoben.
Ich hoffe das hilft.
quelle
Ich hatte dies mit einer etwas ungewöhnlichen SLN / CSPROJ-Dateianordnung:
Ich hatte Projektdateien:
Und ich hatte SLN-Dateien:
Ich hatte die allgemeine Bibliothek bearbeitet und eine Abhängigkeit von Projekt A eingeführt. AC.sln baute immer noch Jenkins ein, aber BC.sln gab einen Fehler mit den Worten:
Es war anfangs rätselhaft, weil wir in keinem Projekt irgendwo eine Debug-Konfiguration haben. finde in Dateien für
Debug|
aufgedeckte 0 TrefferABC.sln, das die menschlichen Entwickler in VS verwenden, würde ebenfalls gut funktionieren. Das Erstellen von BC.sln gab einen Fehler aus, dass A.dll nicht gefunden wurde
Als das kreisförmige unlösbare Problem von C in Abhängigkeit von A beseitigt war, fing alles wieder an zu arbeiten
quelle
Die OutputPath-Eigenschaft ist nicht für das Projekt festgelegt. Eine Fehlermeldung wird angezeigt , wenn eine
Platform
Umgebungsvariable vorhanden ist (wie dies bei HP Laptops der Fall zu sein scheint) und das Ziel von MSBuild einen Verweis auf ein anderes Visual Studio-Projekt enthält.Nach dem Umbenennen der Platform-Umgebungsvariablen funktioniert mein Build jetzt.
Es scheint, dass der Parameter auf die
/p:Platform="Any CPU"
Ziellösung angewendet wird, aber nicht auf referenzierte Projekte übertragen wird. In meinem Fall wurde in der Fehlermeldung angegeben, dass referenzierte Projekte die Umgebungsvariable verwendenPlatform=MCD
.quelle
Dieser Fehler ist irreführend und kann durch ein anderes Problem verursacht werden. Überprüfen Sie die gesamte Nachricht:
In meiner Build-Konfiguration fehlte dieser Knoten im csproj:
<PlatformTarget>AnyCPU</PlatformTarget>
Obwohl AnyCPU die ausgewählte Plattform in der Dropdown-Liste war, war die eigentliche XML nicht vorhanden. Durch Hinzufügen wurde die Nichtübereinstimmung zwischen dem Projekt und dem anderen Projekt, auf das verwiesen wurde, behoben.
quelle
Ich hatte zwei Projektkonfigurationen
Debug
undRelease
. Wenn derRelease
Build verwendet wurde, wurde dieser Fehler ausgelöst. Das Problem, das ich fand, war, dass sichcsproj
dieDebug
Konfiguration in der Datei ganz oben und dieRelease
Konfiguration ganz unten befand.Durch manuelles Verschieben des
Release
Builds direkt unter demDebug
Build wurde das Problem behoben.Ich gehe davon aus, dass ich beim Einrichten meiner Build-Konfigurationen etwas falsch gemacht habe, da dies nicht das Gefühl hat, dass ich es manuell hätte anpassen müssen.
quelle
Bearbeiten Sie die Eigenschaften des Projekts: Stellen Sie sicher, dass "Konfigurationseigenschaften-> Allgemein-> Ausgabeverzeichnis" nicht leer ist. Beachten Sie, dass es hier nicht OutputPath heißt. Sie können den Wert wahrscheinlich aus dem Zwischenverzeichnis kopieren.
quelle