Relatedprojekty msbuild z różnymi build-configs bez użycia SLN
Mam dwa projekty w moim roztwór i VS, BookApp.Web
BookApp.Domain
.
BookApp.Web
referencje BookApp.Domain
.
BookApp.Web
ma następujące konfiguracje produkcji: debug
, staging
, prod-eu
, prod-us
i prod-as
. Mamy trzy centra danych do produkcji i środowiska testowego.
BookApp.Domain
do tej pory ma tylko dwie konfiguracje kompilacji, debug
.
Podczas budowania rozwiązania z poziomu Visual Studio, mogę użyć konfiguratora kompilacji, aby upewnić się, że bez względu na to, jaka konfiguracja została wybrana dla projektu WWW, konfiguracja debugowania jest zawsze używana dla projektu Domain.
Jednak podczas budowania z MSBuild na moim serwerze ciągłej integracji, wszystko idzie nie tak. Używam tego w moim rollout.msbuild pliku:
<MSBuild Projects="BookApp.Web\BookApp.Web.csproj" Properties="Configuration=Prod-us" />
Kiedy uruchomić tego MSBuild oczekuje, że wszystkie projekty zależne mieć taką samą konfigurację kompilacji. Jako że nie jest to przypadek (i nie powinien być IMO), nie jest on z tym komunikatem o błędzie:
The OutputPath property is not set for project 'BookApp.Domain.csproj'. Please check to make sure that you have specified a valid combination of Configuration and Platform for this project. Configuration='Prod-us' Platform='AnyCPU'.
odpowiedzią na related question sugeruje tworzenie oddzielnych rozwiązań .sln dla każdej konfiguracji kompilacji i uruchamiania że z MSBuild. Dla mnie to nie brzmi jak dobry pomysł.
Kopiowanie wszystkich konfiguracji kompilacji do projektu domeny również nie jest idealne.
Czy istnieje lepszy sposób informowania programu MSBuild o korzystaniu z różnych konfiguracji kompilacji?
Z tego co rozumiem, to pytanie i odpowiedź dotyczy budowania wielu konfiguracji konfiguracji * jednego * projektu, z jednym krokiem. Próbuję zrozumieć, jak mogę to wykorzystać w moim przypadku. Czy możesz rozwinąć? – lasseschou