Mamy bardzo duże rozwiązanie (około 300+) projektów i staramy się go zbudować za pomocą MSBuild na TFS2010. Możemy go zbudować za pomocą MSBuild na wszystkich komputerach programistycznych i właśnie przechodzimy do TFS.Problemy z MSBuild OutputPath i OutDir w TFS2010
Struktura naszego kodu jest tak:
bin\Client
bin\Server
Framework\ClientFramework.csproj
Modules\Module1\Project1
Modules\Module2\Project2
etc.
Każdy projekt ma względną OutputPath która buduje kod do Klienta lub katalogu bin serwera. Na przykład Project1.csproj ma OutputPath ".. \ .. \ bin \ Client".
Wydaje się, że problem, który w TFS MSBuild OUTDIR jest ustawiony na stałą ścieżkę:
C:\Builds\MyProject\Binaries\
Więc rzeczy stają się kłopotliwe, gdy rozwiązanie stosunku OutputPath na górze OUTDIR
- ClientFramework idzie do C: \ Buduje \ myproject \ Binaries \ .. \ bin \ Client
- Project1 idzie do C: \ Buduje \ myproject \ Binaries \ .. \ .. \ bin \ client
- itp.
Mamy również kilka zdarzeń budowania Post, które kopiują niektóre pliki DLL 3rd party do folderów bin, ścieżki te nie mogą być rozwiązane poprawnie.
Myślę, że naszym rozwiązaniem jest zbudowanie wszystkiego do istniejącej struktury bin \ Client, bin \ Server, a następnie przeniesienie folderów z bin na binaria.
Wszelkie pomysły na to, jak to osiągnąć lub jak powinniśmy pracować, są doceniane, ale aktualizacja istniejących projektów może okazać się problematyczna, ponieważ wszystko działa z VS, kompilacją wiersza poleceń dla programistów i CC.net.
Artykuł firmy Microsoft: Sterowanie w miejscu, w którym system kompilacji umieszcza pliki binarne http://msdn.microsoft.com/en-us/library/ff977206.aspx –