通用的 MSBuild 專案項目
在 MSBuild 中,項目是一個或多個檔案的具名參考。 項目包含中繼資料,例如檔案名稱、路徑和版本號碼。 Visual Studio 中的所有專案類型都有數個通用項目。 這些項目會在 Microsoft.Build.CommonTypes.xsd 檔案中定義。
本文列出所有常見的專案項目。
參考
代表專案中的組件 (受管理) 參考。
項目中繼資料名稱 | 描述 |
---|---|
提示路徑 | 選擇性字串。 組件的相對或絕對路徑。 |
名稱 | 選擇性字串。 組件的顯示名稱,例如,"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 會使用這個專案做為空白資料夾的佔位元。 填入資料夾時,它會由另一個元素取代。