Problem Erstellen eines einzelnen Projekts mithilfe von Msbuild mit mehreren Konfigurationen
Problem
Sind wir mit der config-Transformationen innerhalb unserer Lösung. Zum Beispiel: Debug -, Test -, Staging-Version
Jedoch, diese Konfigurationen sind nur auf unsere MVC-Projekten. alle Bibliotheken verwenden Sie nur Debug und Release, was mehr Sinn macht, weil unsere Bibliotheken nur gebaut werden müssen, entweder debug-Modus, oder release-Modus.
Das Problem entsteht, wenn Sie versuchen zu bauen, die ein einzelnes Projekt von der Befehlszeile aus. Ich muss in der Lage sein, dies zu tun, um auto deploy unsere builds von TeamCity in unsere Testumgebung.
Wenn ich bauen die einzelnen Projekt wie dieses
msbuild myproject.csproj
/t:Build
/P:Configuration=Test
/P:Platform=AnyCPU
/P:DeployOnBuild=True
/P:DeployTarget=MSDeployPublish
/P:MsDeployServiceUrl=https://SERVER:8172/MsDeploy.axd
/P:AllowUntrustedCertificate=True
/P:MSDeployPublishMethod=WMSvc
/P:CreatePackageOnPublish=True
/P:UserName=Username
/P:Password=Passsword
/P:DeployIisAppPath="IISAPPPATH"
Bekomme ich die folgende Fehlermeldung
myproject.csproj" (Build-Ziel) (1) -> "C:\src\myproject.csproj" (Standard-Ziel) (18) -> c:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.Ziele(483,9) :- Fehler : Der OutputPath-Eigenschaft nicht gesetzt ist, Projekt 'Bibliothek.csproj'. Bitte stellen Sie sicher, dass Sie angegeben haben, eine gültige Kombination von Konfiguration und Plattform für dieses Projekt. Konfiguration='Test' Platform='AnyCPU'. Möglicherweise werden Sie sehen diese Nachricht, weil Sie versuchen um ein Projekt bauen, ohne eine Lösung Datei, und angegeben haben nicht-Standard-Konfiguration oder die Plattform-das gibt es nicht für dieses Projekt.
Weiß ich, was es bedeutet, weil meine Bibliothek nicht haben, um eine Konfiguration für den test und die Zuordnung für die Bibliothek enthalten in meiner .sln-Datei
Frage
Gibt es eine Möglichkeit diese zu lösen, ohne dass Sie diese Konfigurationen für jede Bibliothek-Projekt? Es riecht wie ein hässlicher hack hier.
InformationsquelleAutor der Frage Aaron M | 2012-01-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Leider müssen Sie jedes Projekt, das in der Lösung die gleiche build-Pfad.
Jedoch, dies ist eine ziemlich einfache Sache zu tun, wenn Sie Ihre Projekte, die alle bauen auf den gleichen Pfad unabhängig von der Konfiguration: in den Projekt-Eigenschaften'
Build
Registerkarte, wählen SieAll Configurations
von derConfiguration
dropdown Menü und ändern Sie dann dieOutput path
.Diese wird erstellen Sie Einträge für alle Konfigurationen, die in der Projekt-Datei, nicht die bereits vorhandenen und die gleichen output-Pfad für alle Konfigurationen.
InformationsquelleAutor der Antwort competent_tech
Würden Sie die Option/Eigenschaft
/p:OutputPath=Test
für Sie arbeiten? Es würde die Ausgabe der dlls in ein Verzeichnis namens Test (I guees, die Sie auch verwenden könnte, TeamCity Variablen).Link zu ähnlicher Frage/Antwort
https://stackoverflow.com/a/1083362/90033
InformationsquelleAutor der Antwort Konstantin
Mithilfe des tfs-online bekam ich die gleiche Fehlermeldung, ist diese behoben, mein problem
InformationsquelleAutor der Antwort Zinov
Einfache Lösung wäre, um eine neue Eigenschaft hinzuzufügen, um Ihre Projekte, genannt "DeploymentConfiguration" und haben es das mapping zwischen den configs. Beispiel:
Dann in Ihre MSBuild Aufruf, pass in
In Ihrer Implementierung MVC, Sie würden nur vergeben DeploymentConfiguration durch Konfiguration direkt.
InformationsquelleAutor der Antwort Nick Nieslanik
Stellen eine ODER-Bedingung für die verschiedenen Werte auf Freigabe für so viele verschiedene Konfigurationen, die Sie haben.
zB.
InformationsquelleAutor der Antwort Andrew