2009-03-28 28 views
8

Widziałem prior pytania i odpowiedzi. W tym jednym pytaniu oryginalny plakat zadał pytanie uzupełniające:Dlaczego chciałbym nadal używać Nant, gdy MSBuild jest dostępny?

jakie są powody, dla których warto skorzystać z msbuild? czy są minusy?

Nie widziałem odpowiedzi na to. Chciałbym również poznać rozmowę. Jakie są fascynujące cechy Nant?

Myślę, że na razie wieloplatformowość jest duża. Dla msbuild jest to waluta i integracja z Visual Studio. Czy to brzmi dobrze? Coś jeszcze?

EDYCJA/Dodano: ktoś ma porównanie listy funkcji? Ktoś powiedział "nant ma więcej funkcji po wyjęciu z pudełka". Które?

Czy ma sens łączenie tych projektów, łączenie wysiłków, aby wzajemnie sobie z korzyścią? Czy ktoś zapytał stwardnienie rozsiane, czy byliby skłonni wnosić msbuild do społeczności, jak na przykład WiX? Jakie są szanse?

EDIT2: Właśnie znalazłem this prior discussion, nie wiem, dlaczego nie mogłem go znaleźć wcześniej.

+0

Ponowna platforma - pamiętaj, że mono odczyta również csproj (msbuild). –

+0

oooo, spoko. Narzędzie do budowania Mono to ...? – Cheeso

+0

Przepraszam - powinienem był to powtórzyć; * nant * będzie z powodzeniem pracować z plikami msbuild –

Odpowiedz

14

Nant ma więcej funkcji po wyjęciu z pudełka, ale MSBuild ma znacznie lepsze podstawową strukturę (metadane poz skały), który sprawia, że ​​znacznie łatwiej jest zbudować wielokrotnego użycia skryptów msbuild.

MSBuild potrzebuje czasu, aby zrozumieć, ale gdy to zrobisz, to jest bardzo miłe.

materiały learning:

+1

Miałem dokładnie przeciwne doświadczenie. Stwierdziłem, że skrypty MSBuild są mylące, a skrypty NAnt intuicyjne. Sugerowałbym, żeby ludzie porównali narzędzia dla siebie i wyciągnęli własne wnioski. – TrueWill

2

Można by kontynuować używając nant, ponieważ już go używasz. Jeśli korzystałeś z msbuild i chciałeś się dowiedzieć, dlaczego miałbyś się przełączyć na Nant, odpowiedź brzmi: nie ma prawdziwego powodu, żeby się przełączać. Przynajmniej ty wiesz, że msbuild nie ma nic lepszego, nant nie został zaktualizowany od grudnia 2007.

2

Biorąc pod uwagę, że NAnt jest oparty na Ant for Java, może być wystarczający powód, by się z tym uporać. Inne narzędzia do kompilacji są oparte na Ant-Phing to jeden, dla PHP. Kiedy zacząłem używać tego narzędzia, podniosłem go w mgnieniu oka, odkąd byłem już zaznajomiony z NAnt.

1

Używamy podejścia hybrydowego, ponieważ zaczęliśmy od NANT, zanim dostępna była opcja MS-Build. Jednak MS-Build cna wykonuje równoległe działania na projektach, które nie są zależne, co może w odpowiednich okolicznościach znacznie skrócić czas twoich prac. Pozostawienie NANT do interakcji z SVN, wdrożenie i posiadanie tylko kompilacji MS-owej skraca nasze czasy budowy o około 45% YMMV w zależności od tego, jak budujesz swój sln.

2

Po prostu uważam, że NAnt jest łatwiejszy w użyciu. Śmiem twierdzić, że jest to częściowo spowodowane moim doświadczeniem w Ant, ale odkryłem, że tworzenie pliku NAnt dla buforów protokołów jest prostszym zadaniem niż tworzenie pliku MSBuild dla MiscUtil.(Nawet teraz są rzeczy w budowie MiscUtil, które chciałbym dołączyć, ale nie mogę - wydaje się absurdalnie trudno zrzucić wynik zadania do pliku tekstowego, IIRC.) Pojęcia są prostsze i wydaje się, że być mniej gotcha pod względem oceny kolekcji plików itp.

Obecnie lubię używać konfiguracji, która wcześniej uważałem za naprawdę głupią - używam NAnt dla mojego "głównego" pliku kompilacji, ale wzywam MSBuilda do wykonania rzeczywistego " skompiluj mój projekt .NET "krok. Pomysł posiadania dwóch systemów kompilacji dla tego samego projektu jest obrzydliwy, ale zasadniczo nie traktuję części MSBuild jako pełnego systemu kompilacji - to tylko prosty sposób kompilacji i nigdy nie muszę ręcznie sprawdzać pliku projektu. (Korzystam tylko z niego za pomocą Visual Studio.) W ten sposób mogłem bardzo łatwo rozbudowywać bufory protokołów i wątpię, czy bym miał takie samo doświadczenie, gdybym użył MSBuild.

Wkrótce mam zamiar spróbować go budować wszystko z Mono 2.4 (gdy zostanie zwolniony - dopiero potem są szlagierów w GMC), w której punkt Zobaczymy jak przenośny strategia jest ...

+0

Jak to poszło? Trzy lata później, co myślisz o systemach kompilacji? Czy nadal polecałbyś "msbuild inside nant"? – Weeble

+0

@Weeble: w przypadku buforów protokołów całkowicie korzystamy z MSbuild - ale nie rozumiem szczerze systemu budowania. Dla Noda Time tak naprawdę nie mam * systemu kompilacji. Widziałem dobre rzeczy na temat psake i muszę się z tym pogodzić ... –

1

Some punkty, które przyszło mi do głowy:

  • należy użyć msbuild jeśli pracujesz z Windows Workflow Foundation (kompilacja plików * .xoml, prawdopodobnie jest to również prawdziwe dla WPF)
  • jeśli używasz wix dla konfiguracji budowy Plik .msi można użyć VisualStudio lub msbuild do kompilowania skryptów wix (w przypadku erro r VS może przeskoczyć do problematycznej linii w skryptach wix)
  • msbuild pozwala ci mieć środowisko kompilacji podobne do środowiska programistycznego/Visual Studio (na przykład, gdy budowane są zdarzenia postbuild w msbuild, nie musisz ręcznie obsługiwać listę plików * .cs do zadania csc, ...)

Gdzie pracuję obecnie używamy skryptów NAnt z zadaniem msbuild od NAntContrib.

Powiązane problemy