Share via


覆寫 ToolsVersion 設定

使用 /ToolsVersion 參數 (或 /tv,您可以為專案檔選取工具組,可調整) 或藉由設定 $(ProjectToolsVersion) 屬性。 這在使用與其他專案不同的工具組版本的方案可讓您建立專案。 您也可以覆寫的 MSBuild 工作使用的工具版本會將 ToolsVersion 工作參數。

在命令列組建覆寫專案的 ToolsVersion 設定

雖然一般 Visual Studio 在專案檔中使用 ToolsVersion 的專案建置指定的,但您可以在命令列上,或 /ToolsVersion( /tv) 參數複寫該值和建置所有專案以及專案對專案間的相依性與不同的工具組。 例如:

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

在這個範例中,所有專案都使用 ToolsVersion 3.5 建置 (但請參閱本主題稍後的<優先順序>一節)。

在命令列上使用 /tv 參數時,您可以選擇在個別專案中使用 $(ProjectToolsVersion) 屬性,以使用不同於方案中其他專案的 ToolsVersion 值來進行建置。

使用 MSBuild 工作的 ToolsVersion 參數覆寫 ToolsVersion 設定

MSBuild 工作是讓專案建置另一個專案的主要方式。 為了讓 MSBuild 工作使用不同於專案中所指定的 ToolsVersion 來建置專案,此參數有一個名為 ToolsVersion 的選擇性工作參數。 下列範例示範如何使用這個參數:

  1. 建立名為 projectA.proj ,並包含下列程式碼的檔案:

    <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. 建立名為 projectB.proj ,並包含下列程式碼中的另一個檔案:

    <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. 輸入下列命令在命令提示字元輸入:

    msbuild projectA.proj /t:go /toolsversion:3.5
    
  4. 下列輸出。 對於 projectA,請在命令列的 /toolsversion:3.5 覆寫設定 Project 標記的 ToolsVersion=4.0 。

    ProjectB 是在 projectA的工作呼叫。 該工作有 ToolsVersion=2.0,覆寫 projectB的其他 ToolsVersion 設定。

    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
    

優先順序

優先順序,從最高到最低,用來判斷專案使用的 ToolsVersion 建置時:

  1. 用於的 MSBuild 工作的 ToolsVersion 屬性來建立專案,,如果有的話。

  2. 使用 msbuild.exe 命令的 /toolsversion (或 /tv) 參數,,如果有的話。

  3. 專案檔的 專案 項目的 ToolsVersion 屬性。

  4. 在 MSBuild.exe.config 檔案的預設工具版本。

  5. 登錄中的預設工具版本。 如需詳細資訊,請參閱標準和自訂工具組的組態

1、2 和 3 與屬性相同:

  • MSBuild 工作上的 Properties 屬性

  • msbuild.exe 上的 /p: 參數

  • 專案檔中的 Property 標記

請參閱

概念

MSBuild Toolset (ToolsVersion)

標準和自訂工具組的組態

其他資源

MSBuild 多目標概觀

MSBuild 概念