Udostępnij za pośrednictwem


Zastępowanie ustawień ToolsVersion

Zestaw narzędzi dla pliku programu project można wybrać za pomocą /ToolsVersion przełączanie (lub /tv, w skrócie) lub przez ustawienie $(ProjectToolsVersion) właściwość.Umożliwia to tworzenie projektów w roztworze wersją zestaw narzędzi, która różni się od innych projektów.Można także zastąpić wersją narzędzia używane przez zadania programu MSBuild przez ustawienie ToolsVersion parametru zadania.

Zastąp ustawienia ToolsVersion projektów na buduje wiersza polecenia

Chociaż projektów programu Visual Studio zazwyczaj budować z ToolsVersion, określone w pliku projektu, można użyć /ToolsVersion (lub, /tv) przełączyć się w wierszu polecenia, aby zastąpić tę wartość i budowę wszystkich projektów i ich zależności projektu do projektu z innego zestawu narzędzi.Na przykład:

msbuild.exe someproj.proj /tv:3.5 /p:Configuration=Debug

W tym przykładzie wszystkie projekty zbudowanych przy użyciu ToolsVersion 3.5.(Jednak zobacz sekcję "Kolejność pierwszeństwa" dalej w tym temacie).

Podczas korzystania z /tv przełącznika wiersza polecenia, opcjonalnie można $(ProjectToolsVersion) właściwość w poszczególnych projektach zbudować je podając inną wartość niż inne projekty w roztworze ToolsVersion.

Zastąp ustawienia ToolsVersion przy użyciu parametru ToolsVersion zadania MSBuild

Zadanie programu MSBuild stanowi podstawową drogę dla jednego projektu do budowy drugiego.Aby włączyć zadanie programu MSBuild zbudować projekt z różnych ToolsVersion niż określona w projekcie, zapewnia jako parametr opcjonalny zadanie o nazwie ToolsVersion.Poniższy przykład ilustruje sposób za pomocą tego parametru:

  1. Utwórz plik o nazwie projectA.proj i który zawiera następujący kod:

    <Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003"
    ToolsVersion="4.0">
    
        <Target Name="go" > 
            <Message Text="projectA.proj" />
            <Message Text="MSBuildToolsVersion: $(MSBuildToolsVersion)" />
            <Message Text="MSBuildToolsPath:    $(MSBuildToolsPath)" />
    
            <MSBuild Projects="projectB.proj"
                ToolsVersion="2.0"
                Targets="go" />
        </Target>
    </Project>
    
  2. Utworzyć inny plik o nazwie projectB.proj i który zawiera następujący kod:

    <Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003"
    ToolsVersion="4.0">
    
        <Target Name="go">
            <Message Text="projectB.proj" />
            <Message Text="MSBuildToolsVersion: $(MSBuildToolsVersion)" />
            <Message Text="MSBuildToolsPath:    $(MSBuildToolsPath)" />
        </Target>
    </Project>
    
  3. Wprowadź następujące polecenie w wierszu polecenia:

    msbuild projectA.proj /t:go /toolsversion:3.5
    
  4. Wyświetlane są następujące wyniki.Dla projectA, /toolsversion:3.5 zastępuje ustawienie w wierszu polecenia ToolsVersion=4.0 w Project tag.

    ProjectBjest wywoływana przez zadania w projectA.To zadanie ma ToolsVersion=2.0, który zastępuje inne ToolsVersion ustawienia dla projectB.

    Output:
      projectA.proj
      MSBuildToolsVersion: 3.5
      MSBuildToolsPath:    C:\Windows\Microsoft.NET\Framework\v3.5
    
      projectB.proj
      MSBuildToolsVersion: 2.0
      MSBuildToolsPath:    C:\Windows\Microsoft.NET\Framework\v2.0.50727
    

Kolejność pierwszeństwa

Pozwala określić kolejność pierwszeństwa od najwyższego do najniższego, ToolsVersion jest używane przez projekt do budowania:

  1. ToolsVersion Atrybut używane do konstruowania projektu, jeśli zadanie programu MSBuild.

  2. /toolsversion (Lub /tv) przełącznik, który jest używany w poleceniu msbuild.exe, ewentualne.

  3. ToolsVersion Atrybut Projekt element pliku projektu.

  4. Domyślna wersja narzędzia w pliku MSBuild.exe.config.

  5. Domyślna wersja narzędzia w rejestrze.Aby uzyskać więcej informacji, zobacz Konfiguracje standardowego i niestandardowego zestawu narzędzi.

Numer 1, 2 i 3 są takie same, jak właściwości:

  • Właściwości atrybutu zadanie programu MSBuild

  • przełącznik/p: na msbuild.exe

  • Tag właściwości w pliku projektu

Zobacz też

Koncepcje

Zestaw narzędzi MSBuild (ToolsVersion)

Konfiguracje standardowego i niestandardowego zestawu narzędzi

Inne zasoby

Omówienie aktualnie MSBuild

Pojęcia dotyczące programu MSBuild