2009-10-26 12 views
5

Używamy Make, aby skompilować nasz produkt, który obejmuje, C, C++, Java i kilka innych bitów. W miarę możliwości dysponujemy wszystkimi narzędziami niezbędnymi do skompilowania całego sprawdzanego obiektu do kontroli źródła, wyeliminowania lokalnych zależności i zapewnienia spójności między maszynami.Autonomiczny system do tworzenia projektów Visual Studio

Niedawno dodaliśmy kilka komponentów napisanych w języku C# przy użyciu Visual Studio i chcielibyśmy zastosować podobne podejście w przypadku rozwiązań Visual Studio. Wyłuskanie do devenv nie jest dobrą opcją. Wywołanie bezpośrednio pod numerem csc.exe wymagałoby zachowania zależności między plikami w skrypcie kompilacji, co wolałbym po prostu pozostawić rozwiązaniu Visual Studio.

MSBuild wydaje się dobry zakład, choć jego lokalizacja domyślna w %windir%\Microsoft.NET\Framework\[version]\ sprawia, że ​​martwi się o zmienności pomiędzy maszynami, zarówno z [Version] w ścieżce oraz fakt, że zobaczysz zarówno „Ram” i „Framework64” katalogi. Nie miałbym nic przeciwko temu, że wszyscy programiści mają zainstalowaną wersję framework .NET, ale martwię się, że Twój v3.5 może nie być taki sam jak mój.

Czy ktoś ma rozwiązanie tego, co lubi? Próbowałeś czegoś, czego naprawdę nie lubiłeś?

Odpowiedz

6

MSBuild to na pewno opcja o najniższym współczynniku tarcia. Różne wersje fx nie są tak wielką sprawą w czasie kompilacji - jeśli używasz czegoś ważnego z wersji fx wyższej niż zainstalowana, to się nie zbuduje. Ostatnim miejscem, w którym się znajdowałem, zbudowaliśmy ogromny system do budowania wielu systemów, z NAnt jako bazą, i zahaczyliśmy o MSBuilda zadaniami MSBuilda NAnta. MSBuild sam w sobie jest w porządku, jeśli tylko robisz coś MS, ale mieliśmy wiele rzeczy, których MSBuild natywnie nie obsługiwał, stąd opakowanie NAnt.

+0

Dziękuję wszystkim za odpowiedzi. - Eric –

+0

Co to jest "wersja fx"? –

0

MSBuild to właściwe narzędzie do tej pracy. Wystarczy dopasować swoją wersję ramową do wersji frameworka dołączonego do Visual Studio, którego używasz.

Wersja 32-bitowa i 64-bitowa nie powinny mieć znaczenia, nie sądzę - jestem prawie pewna, że ​​zarówno 32-bitowe, jak i 64-bitowe wydania Csc.exe mogą się krzyżować z drugą platformą. Plik projektu MSBuild (*. * Proj plik XML) powinien zawierać wszystko, co MSBuild musi zbudować.

1

Zgadzam się z każdym innym. Aby to ułatwić, po prostu ustaw vsvars.bat (plik wsadowy, który jest wierszem poleceń Visual Studio) częścią skryptu budowania, a następnie MSBuild będzie działał.

0

Używamy Nant do napędu msbuild. Jeśli martwisz się o różne wersje frameworka, w szczególności dodatki Service Pack, użyj FxCop, aby sprawdzić, czy nie pozwalasz na nieoczekiwane pojawienie się nieoczekiwanych zależności. Szczegóły są podane w this answer.

Powiązane problemy