2012-08-17 16 views
16

Chcę zbudować projekt c# (.csproj) z wiersza poleceń za pomocą msbuild i chcę kierować na środowisko wykonawcze .Net2.0.Zastępowanie szkieletu docelowego z wiersza polecenia

widzę, że plik xml projekt ma 2 tags zainteresowania

<Project ToolsVersion="4.0" ... 

i

<TargetFrameworkVersion>v2.0</TargetFrameworkVersion> 

Zastanawiałem się, czy

  • Czy ToolsVersion kodu zgodnego 4,0 produkować dla .Net2. 0 runtime?
  • mogę zastąpić tag ramową docelowego z pliku projektu poprzez linię poleceń (ma przełącznik linii poleceń /ToolsVersion osiągnąć?

ja konkretnie chcesz osiągnąć to poprzez linię poleceń i nie modyfikować plik projektu.

Obecnie robię coś jak ten

msbuild myproj.csproj /p:Configuration=Release 

Odpowiedz

15

potrzebujesz argumentów wiersza poleceń dla msbuild zrobić tę pracę:

w celu nadpisania wartości w pliku proj oraz w Narzędziu.

Aby dowiedzieć się, która domyślna wersja msbuild jest używana, uruchom wiersz polecenia programu Visual Studio (znajdujący się w menu Start> Microsoft Visual Studio 2010> Visual Studio Tools) i wpisz polecenie msbuild. Pierwszy wiersz wyjścia będzie trzymać BuidEngineversion:

Microsoft (R) Budowanie Silnik wersja 4.0.30319.1

Od doc MSDN:

MSBuild używa zestawu narzędzi zadań, celów i narzędzi do zbudowania aplikacji . Zazwyczaj zestaw narzędzi MSBuild zawiera plik microsoft.common.tasks, plik microsoft.common.targets i kompilatory , takie jak csc.exe i vbc.exe. Większość zestawów narzędzie może być wykorzystywane do aplikacji kompilacji do więcej niż jednej wersji .NET Framework i więcej niż jednej platformy systemowej

Można również sprawdzić środowisko vars dla wersji ram zainstalowanej: set F z Visual Studio wiersza poleceń daje mi ten wynik:

Framework35Version = v3.5
FrameworkDir = c: \ Windows \ Microsoft.NET \ Framework \
FrameworkDIR32 = C: \ WINDOWS \ Microsoft.NET \ Rama działa \
FrameworkVersion = v4.0.30319
FrameworkVersion32 = v4.0.30319

ToolSet Explanation
ToolSetVersion

+0

Jeśli toolsversion jest ustawiony na 4,0 by powstały prowadzony montaż na v2.0 starcie ?? –

+0

Tak, to będzie tylko tv wskazuje, które narzędzia (cele/kompilatory itp.) Msbuild użyte do utworzenia złożenia dla żądanej struktury – rene

+0

Widzę, że mam wiele msbuild.exe po jednym w folderach v2.0, v3.0 i v4 .0 który z nich najlepiej jest używać –

Powiązane problemy