MSBuild 保留和已知屬性
MSBuild 會提供一組預先定義的屬性,用來儲存專案檔和 MSBuild 二進位檔的相關資訊。 這些屬性的評估方式與其他 MSBuild 屬性相同。 例如,若要使用 MSBuildProjectFile
屬性,請輸入 $(MSBuildProjectFile)
。
MSBuild 會使用下表中的值預先定義保留和已知的屬性。 保留的屬性無法覆寫,且大部分已知屬性都不應該被覆寫,但進階案例除外。
保留和已知屬性
本節中的資料表會顯示 MSBuild 預先定義的屬性。 資料表中的範例資料行與下列範例專案檔相關 (假設位於 C:\Source\Repos\ConsoleApp1\ConsoleApp1
),並顯示未使用特殊命令列選項叫用 MSBuild 時,這些屬性在專案檔中存取時的值範例。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
</Project>
屬性 | 保留或已知 | 描述 | 範例 |
---|---|---|---|
FrameworkSDKRoot |
已知 | .NET Framework 工具的根資料夾路徑。 | C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\ |
InnerBuildProperty |
已知 | 指定用於定義多目標建置維度的屬性名稱 (只有當目前的建置是圖形建置時才適用)。 | TargetFramework |
InnerBuildPropertyValues |
已知 | 指定用來保留 InnerBuildProperty 可能值的屬性名稱 (只有當目前的建置是圖形建置時才適用)。 |
TargetFrameworks |
IsGraphBuild |
已知 | 如果這是圖形建置,則為 True ,也就是說,-graphBuild 選項會生效。 此選項表示 MSBuild 會建構及建置專案圖形。 建構圖表需要識別專案參考以形成相依性。 建置該圖表需要嘗試建置專案參考 (在可參考它們的專案之前),這與傳統 MSBuild 排程不同。 |
|
MSBuildAssemblyVersion |
已保留 | 用來建置專案的 MSBuild 組件版本。 | 16.0 |
MSBuildBinPath |
已保留 | 目前使用的 MSBuild 二進位檔所在資料夾的絕對路徑 (例如 C:\Windows\Microsoft.Net\Framework\<versionNumber>)。 如果您必須參考 MSBuild 目錄中的檔案,此屬性會相當實用。 不要在這個屬性中包含結尾的反斜線。 |
C:\Program Files (x86)\Microsoft Visual Studio\2019\MSBuild\Current\Bin |
MSBuildDisableFeaturesFromVersion |
已保留 | 由 MSBuild 和 Microsoft SDK 用來管理變更波動。 | |
MSBuildExtensionsPath |
已知 | 於 .NET Framework 4 中引入:MSBuildExtensionsPath 和 MSBuildExtensionsPath32 兩者的預設值並無差異。 您可以將環境變數 MSBUILDLEGACYEXTENSIONSPATH 設定為非 null 值,藉此啟用舊版中 MSBuildExtensionsPath 之預設值的行為。在 .NET Framework 3.5 (含) 以前版本中, MSBuildExtensionsPath 的預設值會指向 \Program Files\ 或 \Program Files (x86) 資料夾下 MSBuild 子資料夾的路徑 (根據目前處理序的位元而定)。 例如,若是 64 位元電腦上的 32 位元處理序,這個屬性會指向 \Program Files (x86) 資料夾。 若是 64 位元電腦上的 64 位元處理序,這個屬性會指向 \Program Files 資料夾。不要在這個屬性中包含結尾的反斜線。 這個位置是放置目標檔案的理想位置。 例如,您的目標檔案可以安裝於 \Program Files\MSBuild\MyFiles\Northwind.targets,然後使用下面這個 XML 程式碼匯入專案檔中: <Import Project="$(MSBuildExtensionsPath)\MyFiles\Northwind.targets"/> |
C:\Program Files (x86)\Microsoft Visual Studio\2019\MSBuild |
MSBuildExtensionsPath32 |
已知 | \Program Files 或 \Program Files (x86) 資料夾下 MSBuild 子資料夾的路徑。 路徑一律指向 32 位元電腦上的 32 位元 \Program Files (x86) 資料夾,以及 64 位元電腦上的 \Program Files。 請參閱 MSBuildExtensionsPath 和 MSBuildExtensionsPath64 。不要在這個屬性中包含結尾的反斜線。 |
C:\Program Files (x86)\Microsoft Visual Studio\2019\MSBuild |
MSBuildExtensionsPath64 |
已知 | \Program Files 資料夾下 MSBuild 子資料夾的路徑。 若是 64 位元電腦,這個路徑永遠指向 \Program Files 資料夾。 若是 32 位元電腦,這個路徑是空白的。 請參閱 MSBuildExtensionsPath 和 MSBuildExtensionsPath32 。不要在這個屬性中包含結尾的反斜線。 |
C:\Program Files\MSBuild |
MSBuildFileVersion |
已保留 | 用來建置專案的 MSBuild 組件 4 部版本。 | 16.11.0.30701 |
MSBuildFrameworkToolsPath |
已知 | 建置目前所執行 MSBuild 時所用的 .NET Framework 工具的路徑 (以斜線結尾)。 | C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\ |
MSBuildFrameworkToolsPath32 |
已知 | .NET Framework 工具 32 位元版的路徑 (以斜線結尾),適用於建置目前執行中 MSBuild 時所用的相同架構版本。 | C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\ |
MSBuildFrameworkToolsPath64 |
已知 | .NET Framework 工具 64 位元版的路徑 (以斜線結尾),適用於建置目前執行中 MSBuild 時所用的相同架構版本。 | C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\ |
MSBuildInteractive |
已保留 | 如果 MSBuild 以互動方式執行,則為 true ,允許使用者輸入。 此設定是由 -interactive 命令列選項所控制。 |
false |
MSBuildLastTaskResult |
已保留 | 如果前述工作順利完成且沒有任何錯誤 (即使有警告),則為 true ,如果前述工作發生錯誤,則為 false 。 通常在工作中發生錯誤時,錯誤會在該專案中最後發生。 因此,這個屬性的值絕不會是 false ,但下列情節除外:- 將 Task 項目 (MSBuild) 的 ContinueOnError 屬性設為 WarnAndContinue (或 true ) 或 ErrorAndContinue 時。- 當 Target 具有 OnError 項目 (MSBuild) 作為子項目時。 |
true |
MSBuildNodeCount |
已保留 | 建置時使用的並行處理序數目上限。 這是您在命令列中為 -maxcpucount 指定的值。 如果您已指定 -maxcpucount,但未指定值,則 MSBuildNodeCount 會指定電腦中的處理器數目。 如需詳細資訊,請參閱命令列參考和平行建置多個專案。 |
1 |
MSBuildOverrideTasksPath |
已知 | 搜尋 .overridetasks 檔案的位置,可用來提供標準工作的自訂版本。 請參閱 MSBuild 工作。不要在路徑中包含結尾的反斜線。 |
|
MSBuildProgramFiles32 |
已保留 | 32 位元程式資料夾的位置,例如 C:\Program Files (x86)。 不要在這個屬性中包含結尾的反斜線。 |
C:\Program Files (x86) |
MSBuildProjectDefaultTargets |
已保留 | DefaultTargets 項目的 Project 屬性中所指定目標的完整清單。 例如,下列 Project 項目的 MSBuildDefaultTargets 屬性值為 A;B;C 。<Project DefaultTargets="A;B;C" > |
Build |
MSBuildProjectDirectory |
已保留 | 專案檔所在目錄的絕對路徑,例如 C:\MyCompany\MyProduct。 不要在這個屬性中包含結尾的反斜線。 |
C:\Source\Repos\ConsoleApp1\ConsoleApp1 |
MSBuildProjectDirectoryNoRoot |
已保留 | MSBuildProjectDirectory 屬性的值,不包含根磁碟機。不要在這個屬性中包含結尾的反斜線。 |
Source\Repos\ConsoleApp1\ConsoleApp1 |
MSBuildProjectExtension |
已保留 | 專案檔的副檔名,包括英文句號,例如 .proj。 | .csproj |
MSBuildProjectFile |
已保留 | 專案檔的完整檔名,包括副檔名,例如 MyApp.proj。 | ConsoleApp1.csproj |
MSBuildProjectFullPath |
已保留 | 專案檔的絕對路徑和完整檔名,包括副檔名,例如 C:\MyCompany\MyProduct\MyApp.proj。 | c:\Source\Repos\ConsoleApp1\ConsoleApp1\ConsoleApp1.csproj |
MSBuildProjectName |
已保留 | 專案檔的檔案名稱,不包括副檔名,例如 MyApp。 | ConsoleApp1 |
MSBuildRuntimeType |
已保留 | 目前執行的執行階段類型。 已在 MSBuild 15 中引入。 在 MSBuild 15 之前可能未定義值,而 Full 指出 MSBuild 是在傳統型 .NET Framework 上執行、Core 指出 MSBuild 是在 .NET Core 上執行 (例如在 dotnet build 中),或 Mono 指出 MSBuild 是在 Mono 上執行。 |
Full |
MSBuildSDKsPath |
已知 | MSBuild 用來尋找 SDK 的路徑。 | C:\Program Files (x86)\Microsoft Visual Studio\2019\MSBuild\Sdks |
MSBuildSemanticVersion |
已保留 | 用來建置專案的 MSBuild 組件完整 SemVer 2.0 版本。 | 16.11.0-preview-21302-05+5e37cc992 |
MSBuildStartupDirectory |
已保留 | 呼叫 MSBuild 所在資料夾的絕對路徑。 使用這個屬性就可以在專案樹狀結構中建置特定點之下的所有項目,而不需要在每個目錄中建立 <dirs>.proj 檔案。 而您只會有一個專案,例如 c:\traversal.proj,如下所示:<Project ...> <ItemGroup> <ProjectFiles Include="$ (MSBuildStartupDirectory) **\*.csproj"/> </ItemGroup> <Target Name="build"> <MSBuild Projects="@(ProjectFiles)"/> </Target> </Project> 若要在樹狀結構中的任何點進行建置,請輸入: msbuild c:\traversal.proj 不要在這個屬性中包含結尾的反斜線。 |
c:\Source\Repos\ConsoleApp1 |
MSBuildThisFile |
已保留 | MSBuildThisFileFullPath 的檔案名稱和副檔名部分。 |
ConsoleApp1.csproj |
MSBuildThisFileDirectory |
已保留 | MSBuildThisFileFullPath 的目錄部分。在路徑中包含結尾的反斜線。 |
c:\Source\Repos\ConsoleApp1\ConsoleApp1\ |
MSBuildThisFileDirectoryNoRoot |
已保留 | MSBuildThisFileFullPath 的目錄部分,不包括根磁碟機。在路徑中包含結尾的反斜線。 |
Source\Repos\ConsoleApp1\ConsoleApp1\ |
MSBuildThisFileExtension |
已保留 | MSBuildThisFileFullPath 的副檔名部分。 |
.csproj |
MSBuildThisFileFullPath |
已保留 | 包含執行中目標之專案檔或 targets 檔的絕對路徑。 提示:您可以在目標檔案中指定相對於目標檔 (而不是相對於原始專案檔) 的相對路徑。 |
c:\Source\Repos\ConsoleApp1\ConsoleApp1\ConsoleApp1.csproj |
MSBuildThisFileName |
已保留 | MSBuildThisFileFullPath 的檔案名稱部分,不包含副檔名。 |
ConsoleApp1 |
MSBuildToolsPath |
已保留 | 與 MSBuildToolsVersion 值相關聯的 MSBuild 版本安裝路徑。不要在路徑中包含結尾的反斜線。 這個屬性無法覆寫。 |
C:\Program Files (x86)\Microsoft Visual Studio\2019\MSBuild\Current\Bin\ |
MSBuildToolsPath32 |
已知 | 與 MSBuildToolsVersion 值相關聯的 32 位元 MSBuild 版本安裝路徑。不要在路徑中包含結尾的反斜線。 這個屬性無法覆寫。 |
C:\Program Files (x86)\Microsoft Visual Studio\2019\MSBuild\Current\Bin |
MSBuildToolsPath64 |
已知 | 與 MSBuildToolsVersion 值相關聯的 64 位元 MSBuild 版本安裝路徑。不要在路徑中包含結尾的反斜線。 這個屬性無法覆寫。 |
C:\Program Files (x86)\Microsoft Visual Studio\2019\MSBuild\Current\Bin\amd64 |
MSBuildToolsVersion |
已保留 | 用來建置專案的 MSBuild 工具組版本。 注意:MSBuild 工具組包含用於建置應用程式的工作、目標和工具。 工具包括編譯器,例如 csc.exe 和 vbc.exe。 如需詳細資訊,請參閱工具組 (ToolsVersion) 及標準和自訂工具組的組態。 |
Current |
MSBuildUserExtensionsPath |
已知 | 此路徑提供 MSBuild 安裝資料夾的位置。 您可以重設以提供每個使用者適用的本機自訂內容。 請參閱自訂本機建置。 不要在路徑中包含結尾的反斜線。 |
|
MSBuildVersion |
已保留 | 用來建置專案的 MSBuild 版本。 這個屬性無法覆寫,否則就會傳回錯誤訊息 MSB4004 - The 'MSBuildVersion' property is reserved, and can't be modified. 。 |
16.11.0 |
MSBuildWarningsAsErrors |
已知 | 要視為錯誤的警告代碼清單。 | MSB1234;MSB5678 |
MSBuildWarningsAsMessages |
已知 | 要視為訊息的警告代碼清單。 | MSB1234;MSB5678 |
MSBuildWarningsNotAsErrors |
已知 | 即使 -warnAsError 參數設定為將所有其他警告升階為錯誤,也不應升階為錯誤的警告代碼清單。 請注意,如果不是 true,則不會有任何作用。 |
MSB1234;MSB5678 |
OS |
已知 | 在 Windows 上,這會繼承自主機作業系統。 可能的值包括 "Windows_NT" 和 "Unix";可以在 Windows 以外的作業系統上設定為不同的值。 | |
RoslynTargetsPath |
已知 | Roslyn 編譯器的路徑。 | C:\Program Files\Microsoft Visual Studio\2019\MSBuild\Current\Bin\Roslyn |
SDK35ToolsPath |
已知 | .NET Framework 3.5 工具的路徑。 | |
SDK40ToolsPath |
已知 | .NET Framework 4.0 工具的路徑。 | C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\ |
VsInstallRoot |
已知 | Visual Studio 安裝資料夾。 | C:\Program Files (x86)\Microsoft Visual Studio\2019 |
WindowsSDK80Path |
已知 |
屬性 | 保留或已知 | 描述 | 範例 |
---|---|---|---|
FrameworkSDKRoot |
已知 | .NET Framework 工具的根資料夾路徑。 | C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\ |
InnerBuildProperty |
已知 | 指定用於定義多目標建置維度的屬性名稱 (只有當目前的建置是圖形建置時才適用)。 | TargetFramework |
InnerBuildPropertyValues |
已知 | 指定用來保留 InnerBuildProperty 可能值的屬性名稱 (只有當目前的建置是圖形建置時才適用)。 |
TargetFrameworks |
IsGraphBuild |
已知 | 如果這是圖形建置,則為 True ,也就是說,-graphBuild 選項會生效。 此選項表示 MSBuild 會建構及建置專案圖形。 建構圖表需要識別專案參考以形成相依性。 建置該圖表需要嘗試建置專案參考 (在可參考它們的專案之前),這與傳統 MSBuild 排程不同。 |
|
MSBuildAssemblyVersion |
已保留 | 用來建置專案的 MSBuild 組件版本。 | 17.0 |
MSBuildBinPath |
已保留 | 目前使用的 MSBuild 二進位檔所在資料夾的絕對路徑 (例如 C:\Windows\Microsoft.Net\Framework\<versionNumber>)。 如果您必須參考 MSBuild 目錄中的檔案,此屬性會相當實用。 不要在這個屬性中包含結尾的反斜線。 |
C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin\amd64 |
MSBuildDisableFeaturesFromVersion |
已保留 | 由 MSBuild 和 Microsoft SDK 用來管理變更波動。 | |
MSBuildExtensionsPath |
已知 | 於 .NET Framework 4 中引入:MSBuildExtensionsPath 和 MSBuildExtensionsPath32 兩者的預設值並無差異。 您可以將環境變數 MSBUILDLEGACYEXTENSIONSPATH 設定為非 null 值,藉此啟用舊版中 MSBuildExtensionsPath 之預設值的行為。在 .NET Framework 3.5 (含) 以前版本中, MSBuildExtensionsPath 的預設值會指向 \Program Files\ 或 \Program Files (x86) 資料夾下 MSBuild 子資料夾的路徑 (根據目前處理序的位元而定)。 例如,若是 64 位元電腦上的 32 位元處理序,這個屬性會指向 \Program Files (x86) 資料夾。 若是 64 位元電腦上的 64 位元處理序,這個屬性會指向 \Program Files 資料夾。不要在這個屬性中包含結尾的反斜線。 這個位置是放置目標檔案的理想位置。 例如,您的目標檔案可以安裝於 \Program Files\MSBuild\MyFiles\Northwind.targets,然後使用下面這個 XML 程式碼匯入專案檔中: <Import Project="$(MSBuildExtensionsPath)\MyFiles\Northwind.targets"/> |
C:\Program Files\Microsoft Visual Studio\2022\MSBuild |
MSBuildExtensionsPath32 |
已知 | \Program Files 或 \Program Files (x86) 資料夾下 MSBuild 子資料夾的路徑。 路徑一律指向 32 位元電腦上的 32 位元 \Program Files (x86) 資料夾,以及 64 位元電腦上的 \Program Files。 請參閱 MSBuildExtensionsPath 和 MSBuildExtensionsPath64 。不要在這個屬性中包含結尾的反斜線。 |
C:\Program Files\Microsoft Visual Studio\2022\MSBuild |
MSBuildExtensionsPath64 |
已知 | \Program Files 資料夾下 MSBuild 子資料夾的路徑。 若是 64 位元電腦,這個路徑永遠指向 \Program Files 資料夾。 若是 32 位元電腦,這個路徑是空白的。 請參閱 MSBuildExtensionsPath 和 MSBuildExtensionsPath32 。不要在這個屬性中包含結尾的反斜線。 |
C:\Program Files\MSBuild |
MSBuildFileVersion |
已保留 | 用來建置專案的 MSBuild 組件 4 部版本。 | 17.4.0.46505 |
MSBuildFrameworkToolsPath |
已知 | 建置目前所執行 MSBuild 時所用的 .NET Framework 工具的路徑 (以斜線結尾)。 | C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\ |
MSBuildFrameworkToolsPath32 |
已知 | .NET Framework 工具 32 位元版的路徑 (以斜線結尾),適用於建置目前執行中 MSBuild 時所用的相同架構版本。 | C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\ |
MSBuildFrameworkToolsPath64 |
已知 | .NET Framework 工具 64 位元版的路徑 (以斜線結尾),適用於建置目前執行中 MSBuild 時所用的相同架構版本。 | C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\ |
MSBuildInteractive |
已保留 | 如果 MSBuild 以互動方式執行,則為 true ,允許使用者輸入。 此設定是由 -interactive 命令列選項所控制。 |
false |
MSBuildLastTaskResult |
已保留 | 如果前述工作順利完成且沒有任何錯誤 (即使有警告),則為 true ,如果前述工作發生錯誤,則為 false 。 通常在工作中發生錯誤時,錯誤會在該專案中最後發生。 因此,這個屬性的值絕不會是 false ,但下列情節除外:- 將 Task 項目 (MSBuild) 的 ContinueOnError 屬性設為 WarnAndContinue (或 true ) 或 ErrorAndContinue 時。- 當 Target 具有 OnError 項目 (MSBuild) 作為子項目時。 |
true |
MSBuildNodeCount |
已保留 | 建置時使用的並行處理序數目上限。 這是您在命令列中為 -maxcpucount 指定的值。 如果您已指定 -maxcpucount,但未指定值,則 MSBuildNodeCount 會指定電腦中的處理器數目。 如需詳細資訊,請參閱命令列參考和平行建置多個專案。 |
1 |
MSBuildOverrideTasksPath |
已知 | 搜尋 .overridetasks 檔案的位置,可用來提供標準工作的自訂版本。 請參閱 MSBuild 工作。不要在路徑中包含結尾的反斜線。 |
|
MSBuildProgramFiles32 |
已保留 | 32 位元程式資料夾的位置,例如 C:\Program Files (x86)。 不要在這個屬性中包含結尾的反斜線。 |
C:\Program Files (x86) |
MSBuildProjectDefaultTargets |
已保留 | DefaultTargets 項目的 Project 屬性中所指定目標的完整清單。 例如,下列 Project 項目的 MSBuildDefaultTargets 屬性值為 A;B;C 。<Project DefaultTargets="A;B;C" > |
Build |
MSBuildProjectDirectory |
已保留 | 專案檔所在目錄的絕對路徑,例如 C:\MyCompany\MyProduct。 不要在這個屬性中包含結尾的反斜線。 |
C:\Source\Repos\ConsoleApp1\ConsoleApp1 |
MSBuildProjectDirectoryNoRoot |
已保留 | MSBuildProjectDirectory 屬性的值,不包含根磁碟機。不要在這個屬性中包含結尾的反斜線。 |
Source\Repos\ConsoleApp1\ConsoleApp1 |
MSBuildProjectExtension |
已保留 | 專案檔的副檔名,包括英文句號,例如 .proj。 | .csproj |
MSBuildProjectFile |
已保留 | 專案檔的完整檔名,包括副檔名,例如 MyApp.proj。 | ConsoleApp1.csproj |
MSBuildProjectFullPath |
已保留 | 專案檔的絕對路徑和完整檔名,包括副檔名,例如 C:\MyCompany\MyProduct\MyApp.proj。 | c:\Source\Repos\ConsoleApp1\ConsoleApp1\ConsoleApp1.csproj |
MSBuildProjectName |
已保留 | 專案檔的檔案名稱,不包括副檔名,例如 MyApp。 | ConsoleApp1 |
MSBuildRuntimeType |
已保留 | 目前執行的執行階段類型。 已在 MSBuild 15 中引入。 在 MSBuild 15 之前可能未定義值,而 Full 指出 MSBuild 是在傳統型 .NET Framework 上執行、Core 指出 MSBuild 是在 .NET Core 上執行 (例如在 dotnet build 中),或 Mono 指出 MSBuild 是在 Mono 上執行。 |
Full |
MSBuildStartupDirectory |
已保留 | 呼叫 MSBuild 所在資料夾的絕對路徑。 使用這個屬性就可以在專案樹狀結構中建置特定點之下的所有項目,而不需要在每個目錄中建立 <dirs>.proj 檔案。 而您只會有一個專案,例如 c:\traversal.proj,如下所示:<Project ...> <ItemGroup> <ProjectFiles Include="$ (MSBuildStartupDirectory) **\*.csproj"/> </ItemGroup> <Target Name="build"> <MSBuild Projects="@(ProjectFiles)"/> </Target> </Project> 若要在樹狀結構中的任何點進行建置,請輸入: msbuild c:\traversal.proj 不要在這個屬性中包含結尾的反斜線。 |
c:\Source\Repos\ConsoleApp1 |
MSBuildThisFile |
已保留 | MSBuildThisFileFullPath 的檔案名稱和副檔名部分。 |
ConsoleApp1.csproj |
MSBuildThisFileDirectory |
已保留 | MSBuildThisFileFullPath 的目錄部分。在路徑中包含結尾的反斜線。 |
c:\Source\Repos\ConsoleApp1\ConsoleApp1\ |
MSBuildThisFileDirectoryNoRoot |
已保留 | MSBuildThisFileFullPath 的目錄部分,不包括根磁碟機。在路徑中包含結尾的反斜線。 |
Source\Repos\ConsoleApp1\ConsoleApp1\ |
MSBuildThisFileExtension |
已保留 | MSBuildThisFileFullPath 的副檔名部分。 |
.csproj |
MSBuildThisFileFullPath |
已保留 | 包含執行中目標之專案檔或 targets 檔的絕對路徑。 提示:您可以在目標檔案中指定相對於目標檔 (而不是相對於原始專案檔) 的相對路徑。 |
c:\Source\Repos\ConsoleApp1\ConsoleApp1\ConsoleApp1.csproj |
MSBuildThisFileName |
已保留 | MSBuildThisFileFullPath 的檔案名稱部分,不包含副檔名。 |
ConsoleApp1 |
MSBuildToolsPath |
已保留 | 與 MSBuildToolsVersion 值相關聯的 MSBuild 版本安裝路徑。不要在路徑中包含結尾的反斜線。 這個屬性無法覆寫。 |
C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin\amd64 |
MSBuildToolsPath32 |
已知 | 與 MSBuildToolsVersion 值相關聯的 32 位元 MSBuild 版本安裝路徑。不要在路徑中包含結尾的反斜線。 這個屬性無法覆寫。 |
C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin |
MSBuildToolsPath64 |
已知 | 與 MSBuildToolsVersion 值相關聯的 64 位元 MSBuild 版本安裝路徑。不要在路徑中包含結尾的反斜線。 這個屬性無法覆寫。 |
C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin\amd64 |
MSBuildToolsVersion |
已保留 | 用來建置專案的 MSBuild 工具組版本。 注意:MSBuild 工具組包含用於建置應用程式的工作、目標和工具。 工具包括編譯器,例如 csc.exe 和 vbc.exe。 如需詳細資訊,請參閱工具組 (ToolsVersion) 及標準和自訂工具組的組態。 |
Current |
MSBuildSDKsPath |
已知 | MSBuild 用來尋找 SDK 的路徑。 | C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Sdks |
MSBuildSemanticVersion |
已保留 | 用來建置專案的 MSBuild 組件完整 SemVer 2.0 版本。 | 17.4.0-preview-22465-05+6033e4c95 |
MSBuildUserExtensionsPath |
已知 | 此路徑提供 MSBuild 安裝資料夾的位置。 您可以重設以提供每個使用者適用的本機自訂內容。 請參閱自訂本機建置。 不要在路徑中包含結尾的反斜線。 |
|
MSBuildVersion |
已保留 | 用來建置專案的 MSBuild 版本。 這個屬性無法覆寫,否則就會傳回錯誤訊息 MSB4004 - The 'MSBuildVersion' property is reserved, and can't be modified. 。 |
17.4.0 |
MSBuildWarningsAsErrors |
已知 | 要視為錯誤的警告代碼清單。 | MSB1234;MSB5678 |
MSBuildWarningsAsMessages |
已知 | 要視為訊息的警告代碼清單。 | MSB1234;MSB5678 |
MSBuildWarningsNotAsErrors |
已知 | 即使 -warnAsError 參數設定為將所有其他警告升階為錯誤,也不應升階為錯誤的警告代碼清單。 請注意,如果不是 true,則不會有任何作用。 |
MSB1234;MSB5678 |
OS |
已知 | 在 Windows 上,這會繼承自主機作業系統。 可能的值包括 "Windows_NT" 和 "Unix";可以在 Windows 以外的作業系統上設定為不同的值。 | |
RoslynTargetsPath |
已知 | Roslyn 編譯器的目標路徑。 | C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin\Roslyn |
SDK35ToolsPath |
已知 | .NET Framework 3.5 工具的路徑。 | |
SDK40ToolsPath |
已知 | .NET Framework 4.0 工具的路徑。 | C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\ |
VsInstallRoot |
已知 | Visual Studio 安裝資料夾。 | C:\Program Files\Microsoft Visual Studio\2022 |
WindowsSDK80Path |
已知 | Windows 8 SDK 的路徑。 |
C++ 專案特有的屬性
下列屬性代表各種 C++ 工具組版本和目標作業系統的 C++ MSBuild 匯入檔案路徑,例如 .props
和 .targets
檔案。 這些資料夾中的檔案代表 C++ 建置基礎結構,而且對於使用 MSBuild 建置任何 C++ 專案而言非常重要。
屬性 | 保留或已知 | 描述 | 範例 |
---|---|---|---|
AndroidTargetsPath |
已知 | 適用於 Android 建置作業的 C++ MSBuild 匯入檔案路徑。 | C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Microsoft\MDD\Android\V150\ |
iOSTargetsPath |
已知 | 適用於 iOS 建置作業的 C++ MSBuild 匯入檔案路徑。 | C:\Program Files\Microsoft Visual Studio\2022\Preview\MSBuild\Microsoft\MDD\iOS\V150\ |
VCTargetsPath |
已知 | 支援 C++ 建置系統的 C++ MSBuild 檔案路徑。 | C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Microsoft\VC\v170\ |
VCTargetsPath10 |
已知 | 支援 Visual Studio 2010 工具組的 C++ MSBuild 檔案路徑。 | C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\ |
VCTargetsPath11 |
已知 | 適用於 Visual Studio 2012 (V110) 工具組的 MSBuild 匯入檔案路徑。 | C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\ |
VCTargetsPath12 |
已知 | 適用於 Visual Studio 2013 (V120) 工具組的 MSBuild 匯入檔案路徑。 | C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\ |
VCTargetsPath14 |
已知 | 適用於 Visual Studio 2015 (V140) 工具組的 MSBuild 匯入檔案路徑。 | C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\ |
與 MSBuild 項目發生衝突的名稱
除了上述項目,對應至 MSBuild 語言項目的名稱也無法用於使用者定義的屬性、項目或項目中繼資料:
- VisualStudioProject
- 目標
- PropertyGroup
- 輸出
- ItemGroup
- UsingTask
- ProjectExtensions
- OnError
- ImportGroup
- 選擇
- 當
- Otherwise