Wenn ich msbuild über die Befehlszeile mit meiner Lösungsdatei oder Projektdatei als Eingabe ausführe, ohne Konfiguration und Plattform festzulegen, wie ermittelt msbuild welche Konfiguration und Plattform für jedes Projekt in der Lösung oder der einzelnen Projektdatei verwenden?Welche Konfiguration und Plattform verwendet Msbuild standardmäßig beim Erstellen einer Projekt- oder Projektdatei?
Antwort
Bei Lösungsdateien - sowohl msbuild und xbuild versucht Debug
config und Mixed platforms
Plattform zu finden, aber wenn das nicht existiert, fällt es zurück auf den ersten, die es unter SolutionConfigurationPlatforms
in der .sln
Datei zu finden. Beachten Sie, dass dies nur Lösung Ebene config/Plattform ist, und es verwendet die Zuordnung in ProjectConfigurationPlatforms
in der Datei .sln
, um die Konfiguration/Plattform für das Projekt zu verwenden.
Im Falle von Projektdateien haben die *proj
Dateien normalerweise die Standardwerte Configuration
und Platform
. Aber selbst wenn das fehlt, wählt die Microsoft.Common.*targets
Datei Debug|AnyCPU
als Standard.
Update: Standard-Spezifikation in der csproj könnte wie folgt aussehen:
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
...
es im Wesentlichen sagt "wenn $ (Konfiguration) nicht spezifiziert ist, stellen Sie ihn dann auf Debug" und ähnliche für Platform.
- 1. MSBuild: Probleme beim Festlegen der Plattform für untergeordnete Builds
- 2. Wie Debuggen einer Projektdatei in MSBuild 12.0/VS2013?
- 3. MSBuild überschreibt Eigenschaften beim Erstellen von VC++ - Projekt
- 4. x64 build: error MSB8013: Dieses Projekt enthält nicht die Konfiguration und Plattform-Kombination von Debug | Win32
- 5. MSBuild Projekt Bereitstellung in lokalen Ordner mit der Konfiguration transformiert
- 6. Projekt enthält keine Konfiguration namens "Debug | x64"
- 7. Konfiguration in einer Datei oder einer Datenbank?
- 8. Private Accessor nicht erstellen, wenn MSBuild verwendet
- 9. Cross-Plattform-Konfiguration, Optionen, Einstellungen, Voreinstellungen, Standardeinstellungen
- 10. Welche NSDataReadingOptions sollte beim Lesen einer lokalen Datei verwendet werden?
- 11. MsBuild: Erzwingen einer Neuerstellung beim Ändern der Erstellungskonfiguration
- 12. Auf der Suche nach einer Referenz MsBuild-Konfiguration in einem großen Projekt
- 13. Formatieren einer SoapUI-Projektdatei
- 14. Erstellen einer Webanwendung mit Msbuild
- 15. Was bewirkt die private Einstellung für eine ProjectReference in einer MSBuild-Projektdatei?
- 16. MSBuild Fehler beim Erstellen einer Build-Definition in TFS 2013
- 17. Veröffentlichen einer Website mit Msbuild
- 18. Erstellen einer neuen Ruby-Plattform in Netbeans
- 19. Funktion Anrufer Kraft entscheiden Wert, welche standardmäßig verwendet wird
- 20. Wie die gleiche msbuild Ziel zweimal mit unterschiedlichen Parametern aus msbuild Projektdatei selbst
- 21. Welches Segmentregister wird standardmäßig verwendet?
- 22. Welche Google Maps-API-Version wird standardmäßig verwendet?
- 23. MSBuild 4 und MSDeploy Befehlszeile
- 24. .NET oder Mono vs Qt, welche für Cross-Plattform-Entwicklung?
- 25. MSbuild die aktuelle Konfiguration aus der Lösungsdatei
- 26. Visual Studio-Version in MSBuild-Projekt erkennen
- 27. MSBuild Importieren mit einem Projekt modularisieren
- 28. Welche Art von Projekt muss ich erstellen?
- 29. prüfen argparse Argument Satz oder verwendet standardmäßig oder
- 30. Win Service-Projekt wird nicht nach dem Wechsel zu einer beliebigen CPU-Konfiguration erstellen
Wie werden die Standardeinstellungen 'Configuration' und' Platform' im csproj angegeben? Wissen Sie auch, ob Microsoft dieses Verhalten irgendwo dokumentiert hat oder wo ich die "Microsoft.Common. * Targets" und den msbuild-Code durchsuchen muss, um diese Informationen zu finden? Ich meine, ich könnte experimentieren, indem ich Testlösungen und Proj-Dateien erstelle, aber ich wollte nicht herausfinden, dass die Regeln komplexer sind als das, was meine Experimente enthüllten. –
Verständnis der Build-Konfigurationen: https://msdn.microsoft.com/en-us/library/kkz9kefa.aspx – radical
Danke, der Link ist genau das, was ich gesucht habe! Auch danke für das Update und ich habe vergessen, das sind in jeder der Projektdateien gleich zu Beginn ... –