2012-02-14 10 views
20

Próbuję ustawić TeamCity zrobić CI przy użyciu .NET oraz konfigurowania budować biegaczy mam:Różnice między Visual Studio (.sln) zbudować płozy i MSBuild

  1. Visual Studio (SLN)
  2. MSBuild
  3. Visual Studio 2003

Jaka jest różnica? Dlaczego trzy budują do pracy nad tym samym typem projektu? (? Z wyjątkiem roku 2003, który jest tylko do 2003 wierzę, dlaczego)

Biorąc problem, mamy tej kompilacji biegaczy plików .exe:

  1. NET Runner Process
  2. Command Line

Prowadnik do budowy linii "Command Line" nie działa z żadnym zestawem .net? Dlaczego Runner .Net Process Runner?

Odpowiedz

12

Visual Studio (SLN)
Jeśli rozwiązanie jest mały i nie trzeba robić fantazyjne rzeczy można użyć Visual Studio (SLN) opiera biegacza. Robi dokładnie to samo, co w przypadku Project-> Build (z menu VS). Ta opcja jest bardzo łatwa do skonfigurowania, kilka kliknięć i twój serwer CI kompiluje twoje rozwiązanie.

MSBuild
Jeśli trzeba zrobić więcej zaawansowane scenariusze oprócz prostego zestawienia, jak stosować różne pliki konfiguracyjne, włóż przekształconych wartości w pliku konfiguracyjnym, wdrożyć binarne itp opcję MSBuild chcesz wybrać. Będziesz wiedział, kiedy będziesz tego potrzebował, po prostu dlatego, że budowniczy slna nie będzie w stanie robić rzeczy. Ta opcja wymaga pewnej wiedzy na temat budowania języka skryptowego, który jest oparty na zadaniach i podobny do xml.

+1

dzięki za odpowiedź. Visual Studio (sln) używa MSBuilda za kulisami, nie? –

+0

VS może tworzyć typy projektów, których MSBuild nie może (np. Instalować projekty). Lub przynajmniej to było moje doświadczenie z VS 2008 - być może teraz jest bardziej zsynchronizowany. – Joey

+0

@Acaz No tak, ale to wszystko ukryte przed tobą. Właściwie używasz MSBuild, kiedy robisz to w VS (Project-> Build), ale po prostu tego nie wiesz. Ten sam proces tutaj, dla uproszczenia można skonfigurować CI, aby natychmiast skompilować projekt. – oleksii

-1

Jeśli używasz plików rozwiązania (Visual Studio), oznacza to, że musisz licencjonować kopię programu Visual Studio dla swojego serwera kompilacji wraz z instalacją/konserwacją, która się z tym wiąże. Jeśli używasz MSBuilda, nie potrzebujesz tego, wszystko czego potrzebujesz to instalacje frameworka .net. Jedyną różnicą między tymi dwoma elementami jest to, że Visual Studio ma różne rodzaje zmiennych środowiskowych i używa rzeczy takich jak kolejność kompilacji. Podczas, gdy MSBuild nie ma żadnych zmiennych środowiskowych ustawionych domyślnie i nie rozpoznaje porządku kompilacji, przelicza tylko powtórzenia. Będzie to nieco łatwiejsze niż w Visual Studio, a od czasu do czasu nie natrafisz na te przypadki, w których byłeś zależny od wizualnego studia, by ukryć trochę niechlujstwa.

+2

Przepraszam, ale to nie to. Występuję w zielonej wersji z użyciem programu '' Visual Studio runner'' na serwerze, na którym zainstalowałem tylko '' MSBuild Tools'' i '' Windows SDK'', oba darmowe produkty, które można pobrać z MS teren. – MoonStom

3

Kiedy używasz MSBuild do zbudowania pliku .SLN (bez dokumentu MSBuild), generuje on plik MSBuild w pamięci, który odwołuje się do wszystkich projektów, aby zbudować w określonej konfiguracji, a następnie wykonuje ją. Kiedy używasz Visual Studio do budowania, zamiast tego dzwonisz do DevEnv.com.

Istnieją pewne typy projektów (C++ w 2005/2008 i VDPROJ w 2005/2008/2010), które nie są plikami MSBuild i nie można ich zbudować przy użyciu tylko MSBuild. Otrzymasz ostrzeżenie o kompilacji, mówiące, że jeden lub więcej projektów nie było prawidłowymi projektami MSBuild i nie można ich było zbudować.

W geneneralu staram się utrzymywać szczupłe i średnie maszyny budujące i instalować Visual Studio tylko w razie potrzeby.

0

Zauważyłem bardzo niewiele między tymi dwoma. W szczególności w naszej instancji potrzebowaliśmy zbudować .vdproj. Teraz po uruchomieniu go tam, gdzie jest dwóch biegaczy, biegacz linii komend lub Visual Studio (sln). Jednak podczas wykonywania programu typu Visual Studio (sln) otrzymaliśmy następujący błąd: "[Ostrzeżenie] C: \ BuildAgent \ work \ 1bd75058d7bca32b \ POS \ PoSWidgetInstaller \ myInstaller.vdproj.metaproj warning MSB4078: Plik projektu" myInstaller \ myInstaller .vdproj "nie jest wspierany przez MSBuild i nie można go zbudować."

I nie zawiedzie, gdy jest wbudowane w rozwiązanie. Myślę, że typ programu uruchamiającego Visual Studio (sln) pobiera dane z pliku sln, a następnie używa go z MSbuild. Nie jestem pewien, nie mogę potwierdzić, ale tylko moje przemyślenia na ten temat.

Powiązane problemy