共用方式為


常見的 MSBuild 項目專案

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

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

Reference

表示專案中的元件 (Managed) 參考。

專案元數據名稱 描述
HintPath 選擇性字串。 元件的相對或絕對路徑。
名字 選擇性字串。 元件的顯示名稱,例如 「System.Windows.Forms」。。
FusionName 選擇性字串。 指定項目的簡單或強式融合名稱。

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

COMReference

表示專案中的 COM (Unmanaged) 元件參考。 此專案僅適用於 .NET 專案。

專案元數據名稱 描述
名字 選擇性字串。 元件的顯示名稱。
Guid 必要的字串。 元件的 GUID,格式為 {12345678-1234-1234-1234-123456781234}。
VersionMajor 必要的字串。 元件版本號碼的主要部分。 例如,如果完整版本號碼為 「5.46」,則為 「5」。。
VersionMinor 必要的字串。 元件版本號碼的次要部分。 例如,如果完整版本號碼為 「5.46」,則為 「46」。。
EmbedInteropTypes 選擇性布爾值。 如果為 true,請將此參考中的 Interop 類型直接內嵌到您的元件,而不是產生 Interop DLL。
Lcid 選擇性字串。 元件的LocaleID。
WrapperTool 選擇性字串。 元件上使用的包裝函式工具名稱。 值為:

1. 主要
2. tlbimp
3. primaryortlbimp
4. aximp
孤立 選擇性布爾值。 指定元件是否為無註冊元件。

COMFileReference

代表傳遞至 resolveComReference 目標TypeLibFiles 參數的類型連結庫清單。 此專案僅適用於 .NET 專案。

專案元數據名稱 描述
WrapperTool 選擇性字串。 元件上使用的包裝函式工具名稱。 值為:

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

NativeReference

表示原生指令清單檔或這類檔案的參考。

專案元數據名稱 描述
名字 必要的字串。 指令清單檔的基底名稱。
HintPath 必要的字串。 指令清單檔的相對路徑。

ProjectReference

表示另一個項目的參考。 ProjectReference 專案會由 ResolveProjectReferences 目標轉換成 參考 專案,因此,如果轉換程式未覆寫,參考上的任何有效元數據在 ProjectReference上都可能有效。

專案元數據名稱 描述
名字 選擇性字串。 參考的顯示名稱。
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 中建置時(與 MSBuild.exedotnet build相反),指定這並不會防止 Visual Studio 建置參考專案的默認目標。

注意

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

編譯

表示編譯程式的來源檔案。

專案元數據名稱 描述
DependentUpon 選擇性字串。 指定此檔案相依的檔案,以正確編譯。
AutoGen 選擇性布爾值。 指出檔案是否由Visual Studio集成開發環境 (IDE) 為項目產生。
連結 選擇性字串。 當檔案實際位於項目檔影響之外時所要顯示的表示法路徑。
可見 選擇性布爾值。 指出是否要在 Visual Studio 中 [方案總管] 中顯示檔案。
CopyToOutputDirectory 選擇性字串。 判斷是否要將檔案複製到輸出目錄。 值為:

1. 永不
2. 永遠
3. PreserveNewest
4. IfDifferent

EmbeddedResource

表示要內嵌在產生的元件中的資源。

專案元數據名稱 描述
文化 選擇性字串。 指定資源檔的文化特性。 如果指定,建置程式不會根據擴展名自動推斷文化特性(這取決於裝載組建之計算機上的 .NET/OS 可用的文化特性)。 強烈建議您設定 Culture={culture identifier}WithCulture=false 元數據。
WithCulture 選擇性布爾值。 指定檔案是文化特性中性,應該略過 AssignCulture 工作的文化特性偵測。 強烈建議您設定 Culture={culture identifier}WithCulture=false 元數據。
DependentUpon 選擇性字串。 指定此檔案相依的檔案,以正確編譯
發電機 選擇性字串。 在此專案上執行的任何檔案產生器名稱。
LastGenOutput 選擇性字串。 由此項目上執行之任何檔案產生器所建立的檔名。
CustomToolNamespace 選擇性字串。 在此專案中執行的任何檔案產生器都應該建立程式碼的命名空間。
連結 選擇性字串。 如果檔案實際位於項目影響之外,則會顯示表示法路徑。
可見 選擇性布爾值。 指出是否要在 Visual Studio 中 [方案總管] 中顯示檔案。
CopyToOutputDirectory 選擇性字串。 判斷是否要將檔案複製到輸出目錄。 值為:

1. 永不
2. 永遠
3. PreserveNewest
4. IfDifferent
LogicalName 必要的字串。 內嵌資源的邏輯名稱。

內容

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

專案元數據名稱 描述
DependentUpon 選擇性字串。 指定此檔案相依的檔案,以正確編譯。
發電機 選擇性字串。 在此專案上執行的任何檔案產生器名稱。
LastGenOutput 選擇性字串。 由此項目上執行之任何檔案產生器所建立的檔名。
CustomToolNamespace 選擇性字串。 在此專案中執行的任何檔案產生器都應該建立程式碼的命名空間。
連結 選擇性字串。 如果檔案實際位於項目影響之外,則會顯示表示法路徑。
PublishState 必要的字串。 內容的發佈狀態,可以是:

-違約
-包括
-排除
- DataFile
-先決條件
IsAssembly 選擇性布爾值。 指定檔案是否為元件。
可見 選擇性布爾值。 指出是否要在 Visual Studio 中 [方案總管] 中顯示檔案。
CopyToOutputDirectory 選擇性字串。 判斷是否要將檔案複製到輸出目錄。 值為:

1. 永不
2. 永遠
3. PreserveNewest
4. IfDifferent
TargetPath 選擇性字串。 項目的輸出路徑(相對於組態和/或平臺特定輸出目錄),包括檔名。 如果提供,這會遵守 Link 元數據。 如果未提供 TargetPath,則會在建置程式期間加以計算。 請參閱 AssignTargetPath

沒有

表示不應該在建置程式中具有任何角色的檔案。

專案元數據名稱 描述
DependentUpon 選擇性字串。 指定此檔案相依的檔案,以正確編譯。
發電機 選擇性字串。 在此專案上執行的任何檔案產生器名稱。
LastGenOutput 選擇性字串。 由此項目上執行之任何檔案產生器所建立的檔名。
CustomToolNamespace 選擇性字串。 在此專案中執行的任何檔案產生器都應該建立程式碼的命名空間。
連結 選擇性字串。 如果檔案實際位於項目影響之外,則會顯示表示法路徑。
可見 選擇性布爾值。 指出是否要在 Visual Studio 中 [方案總管] 中顯示檔案。
CopyToOutputDirectory 選擇性字串。 判斷是否要將檔案複製到輸出目錄。 值為:

1. 永不
2. 永遠
3. PreserveNewest
4. IfDifferent

AssemblyMetadata

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

專案元數據名稱 描述
包括 成為 AssemblyMetadataAttribute 屬性建構函式中的第一個參數(索引鍵)。
價值 必要的字串。 成為 AssemblyMetadataAttribute 屬性建構函式中的第二個參數(值)。

注意

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

InternalsVisibleTo

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

專案元數據名稱 描述
包括 元件名稱。
鑰匙 選擇性字串。 元件的公鑰。

注意

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

BaseApplicationManifest

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

CodeAnalysisImport

表示要匯入的 FxCop 專案。

進口

表示 Visual Basic 編譯程式應該匯入命名空間的元件。

資料夾

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

另請參閱