共用方式為


通用的 MSBuild 專案項目

在 MSBuild 中,項目是一個或多個檔案的具名參考。 項目包含中繼資料,例如檔案名稱、路徑和版本號碼。 Visual Studio 中的所有專案類型都有數個通用項目。 這些項目會在 Microsoft.Build.CommonTypes.xsd 檔案中定義。

本文列出所有常見的專案項目。

Reference

代表專案中的組件 (受管理) 參考。

項目中繼資料名稱 描述
提示路徑 選擇性字串。 組件的相對或絕對路徑。
名稱 選擇性字串。 組件的顯示名稱,例如,"System.Windows.Forms"。
融合名稱 選擇性字串。 指定項目的簡單或強式融合名稱。

當此屬性存在時,可能會節省時間,因為元件檔案不需要開啟即可取得融合名稱。
特定版本 選擇性布林值。 指定是否應僅參考融合名稱中的版本。
別名 選擇性字串。 參考的任何別名。
私人 選擇性布林值。 指定是否應將參考複製到輸出資料夾。 此屬性與 Visual Studio IDE 中參考的 [複製到本機] 屬性相符。

COM 參考

代表專案中的 COM (未受管理) 元件參考。 此項目僅適用於 .NET 專案。

項目中繼資料名稱 描述
Name 選擇性字串。 元件的顯示名稱。
Guid 必要的字串。 元件的 GUID,格式為 {12345678-1234-1234-1234-123456781234}。
VersionMajor 必要的字串。 元件的版本號碼主要部分。 例如,如果完整版本號碼為"5.46",則主要部分為 "5"。
VersionMinor 必要的字串。 元件版本號碼的次要部分。 例如,如果完整版本號碼為"5.46",則次要部分為 "46"。
EmbedInteropTypes 選擇性布林值。 若為 true,就會將 Interop 類型從這個參考直接內嵌到您的組件中,而不是產生 Interop DLL。
Lcid 選擇性字串。 元件的地區設定識別碼。
包裝函式工具 選擇性字串。 用於元件的包裝函式工具名稱。 值為:

1. 主要
2. tlbimp
3. primaryortlbimp
4. aximp
隔離式方案 選擇性布林值。 指定元件是否為免註冊元件。

COM 檔案參考

代表傳遞給 ResolveComReference 目標之 TypeLibFiles 參數的類型程式庫清單。 此項目僅適用於 .NET 專案。

項目中繼資料名稱 描述
包裝函式工具 選擇性字串。 用於元件的包裝函式工具名稱。 值為:

1. 主要
2. tlbimp
3. primaryortlbimp
4. aximp

原生參考

代表原生的資訊清單檔案或是這類檔案的參考。

項目中繼資料名稱 描述
Name 必要的字串。 資訊清單檔案的基底名稱。
提示路徑 必要的字串。 資訊清單檔案的相對路徑。

專案參考

代表另一個專案的參考。 ProjectReference 項目會由 ResolveProjectReferences 目標轉換成參考項目,因此如果轉換程式未覆寫參考程式,則參考上的任何有效中繼資料在 ProjectReference 上都可能有效。

項目中繼資料名稱 描述
Name 選擇性字串。 參考的顯示名稱。
GlobalPropertiesToRemove 選擇性 string[]。 建置參考專案時要移除的屬性名稱,例如 RuntimeIdentifier;PackOnBuild。 預設值為空白。
計畫 選擇性字串。 參考的 GUID,格式為 {12345678-1234-1234-1234-123456781234}。
OutputItemType 選擇性字串。 要發出目標輸出的項目類型。 預設值為空白。 如果 Reference 元數據設定為 「true」 (預設值),則目標輸出會變成編譯程序的參考。
ReferenceOutputAssembly 選擇性布林值。 如果設定為 false,則不包含參考專案的輸出做為此 項目的參考 ,但仍會確保其他專案會在此專案之前建置。 預設為 true
私人 選擇性布林值。 指定是否應將參考複製到輸出資料夾。 此屬性與 Visual Studio IDE 中參考的 [複製到本機] 屬性相符。
SetConfiguration 選擇性字串。 設定參考專案的全域屬性 Configuration,例如 Configuration=Release
SetPlatform 選擇性字串。 設定參考專案的全域屬性 Platform,例如 Platform=AnyCPU
SetTargetFramework 選擇性字串。 設定參考專案的全域屬性 TargetFramework,例如 TargetFramework=netstandard2.0
SkipGetTargetFrameworkProperties 選擇性布林值。 如果 true,則會建置參考的專案,而不交涉最相容的 TargetFramework 值。 預設為 false
目標 選擇性 string[]。 應建置之參考專案中的目標分號分隔清單。 預設值為的值 $(ProjectReferenceBuildTargets),預設值為空白,表示預設目標。 在 Visual Studio 中建置時(與 或 dotnet build相反MSBuild.exe),指定這並不會防止 Visual Studio 建置參考專案的默認目標。

注意

.NET Framework 與 .NET Core 之間的專案參考運作方式有差異 (包括 .NET 5 和更新版本)。 在 .NET Framework 專案中,項目參考不會轉移。 也就是說,如果 Project1 參考 Project2,而 Project2 參考 Project3,則您無法從 Project1 針對 Project3 撰寫程式碼。 不過,在 .NET Core (包括 .NET 5 和更新版本) 中,專案參考轉移。 您可以在 Project1 中針對 Project3 撰寫程式碼。

編譯

代表編譯器的原始程式檔。

項目中繼資料名稱 描述
相依依據 選擇性字串。 指定這個檔案必須倚賴才能正確編譯的檔案。
自動產生 選擇性布林值。 指出是否已透過 Visual Studio 整合式開發環境 (IDE) 為專案產生檔案。
連結 選擇性字串。 當檔案實際位於專案檔影響力之外時所顯示的標記路徑。
可見 選擇性布林值。 指出是否要在 Visual Studio 的方案總管中顯示檔案。
複製到輸出目錄 選擇性字串。 決定是否要將檔案複製到輸出目錄。 值為:

1.永不
2.永遠
3.保留最新的

內嵌資源

代表要內嵌於所產生組件中的資源。

項目中繼資料名稱 描述
相依依據 選擇性字串。 指定這個檔案必須倚賴才能正確編譯的檔案
Generator 選擇性字串。 在此項目上執行的任何檔案產生器名稱。
最後產生輸出 選擇性字串。 在此項目執行的任何檔案產生器所建立的檔案名稱。
自訂工具命名空間 選擇性字串。 在此項目上執行的任何檔案產生器應在其中建立程式碼的命名空間。
連結 選擇性字串。 如果檔案實際位於專案影響力之外,便會顯示標記路徑。
可見 選擇性布林值。 指出是否要在 Visual Studio 的方案總管中顯示檔案。
複製到輸出目錄 選擇性字串。 決定是否要將檔案複製到輸出目錄。 值為:

1.永不
2.永遠
3.保留最新的
LogicalName 必要的字串。 內嵌資源的邏輯名稱。

Content

表示未編譯至項目的檔案,但可能會內嵌或一起發行。

項目中繼資料名稱 描述
相依依據 選擇性字串。 指定這個檔案必須倚賴才能正確編譯的檔案。
Generator 選擇性字串。 在此項目上執行的任何檔案產生器名稱。
最後產生輸出 選擇性字串。 在此項目執行的任何檔案產生器所建立的檔案名稱。
自訂工具命名空間 選擇性字串。 在此項目上執行的任何檔案產生器應在其中建立程式碼的命名空間。
連結 選擇性字串。 如果檔案實際位於專案影響力之外,便會顯示標記路徑。
發行狀態 必要的字串。 內容的發行狀態,可以是:

- 預設值
- 包含
- 排除
- 資料檔
- 必要條件
為組件 選擇性布林值。 指定檔案是否為組件。
可見 選擇性布林值。 指出是否要在 Visual Studio 的方案總管中顯示檔案。
複製到輸出目錄 選擇性字串。 決定是否要將檔案複製到輸出目錄。 值為:

1.永不
2.永遠
3.保留最新的
TargetPath 選擇性字串。 項目的輸出路徑 (相對於組態和/或平台特定輸出目錄),包括檔案名稱。 如果提供,則會遵守 Link 中繼資料。 如果未提供 TargetPath,則會在建置程式期間加以計算。 請參閱 AssignTargetPath

代表在建置流程中應該沒有任何角色的檔案。

項目中繼資料名稱 描述
相依依據 選擇性字串。 指定這個檔案必須倚賴才能正確編譯的檔案。
Generator 選擇性字串。 在此項目上執行的任何檔案產生器名稱。
最後產生輸出 選擇性字串。 在此項目執行的任何檔案產生器所建立的檔案名稱。
自訂工具命名空間 選擇性字串。 在此項目上執行的任何檔案產生器應在其中建立程式碼的命名空間。
連結 選擇性字串。 如果檔案實際位於專案影響力之外,便會顯示標記路徑。
可見 選擇性布林值。 指出是否要在 Visual Studio 的方案總管中顯示檔案。
複製到輸出目錄 選擇性字串。 決定是否要將檔案複製到輸出目錄。 值為:

1.永不
2.永遠
3.保留最新的

AssemblyMetadata

表示要產生為 [AssemblyMetadata(key, value)] 的組件屬性。

項目中繼資料名稱 描述
包括​​ 成為 AssemblyMetadataAttribute 屬性建構函式中的第一個參數 (索引鍵)。
必要的字串。 成為 AssemblyMetadataAttribute 屬性建構函式中的第二個參數 (值)。

注意

此項目適用於使用 SDK for .NET 5 (和 .NET Core) 和更新版本的專案。

InternalsVisibleTo

指定要發出為 [InternalsVisibleTo(..)] 組件屬性的組件。

項目中繼資料名稱 描述
包括​​ 組件名稱。
機碼 選擇性字串。 組件的公開金鑰。

注意

此項目適用於使用 SDK for .NET 5 (和 .NET Core) 和更新版本的專案。

基本應用程式資訊清單

代表組建的基本應用程式資訊清單,並包含 ClickOnce 部署安全性資訊。

程式碼分析匯入

代表要匯入的 FxCop 專案。

Import

代表應該由 Visual Basic 編譯器匯入命名空間的組件。

Folder

只有 Visual Studio 會使用這個專案做為空白資料夾的佔位元。 填入資料夾時,它會由另一個元素取代。

另請參閱