任務提供運行在生成過程的代碼。 在以下任務列表包含 MSBuild。 安裝時 Visual C++ ,可使用其他任務來生成 Visual C++ 項目。 有關更多信息,請參見 特定於 Visual C++ 的 MSBuild 任務。
除了在本節中的主題列表的參數外,還具有以下參數:
參數 |
說明 |
---|---|
Condition |
選項 String 參數。 MSBuild 引擎用來確定的 Boolean 表達式是否執行此任務。 有關由 MSBuild支持的條件的信息,請參見 MSBuild 條件。 |
ContinueOnError |
選項 Boolean 參數 是否運行的目標指定其余任務的 Boolean 值,如果此任務失敗。 ,因為 Execute 方法引發異常或返回 false,任務會失敗。 如果 ContinueOnError 設置為 true,余下的任務運行的和失敗不會導致整個目標失敗。 如果 ContinueOnError 設置為 false,余下的任務未運行,整個目標失敗。 默認情況下, ContinueOnError 是 false。 |
對於所有 Visual Studio 項目,不論其項目類型如何,都有一些通用的 MSBuild 屬性。 而且,還有其他一些常用的屬性。 下面列出了通用屬性和常用屬性。
通用屬性和參數的列表
屬性或參數名 |
說明 |
---|---|
AdditionalLibPaths |
指定其他文件夾,編譯器將在這些文件夾中查找引用程序集。 |
AddModules |
使編譯器讓指定文件中的所有類型信息可供正在編譯的項目使用。 此屬性等效於 /addModules 編譯器開關。 |
ALToolPath |
可以找到 AL.exe 的路徑。 此屬性將重寫 AL.exe 的當前版本,從而允許使用其他版本。 |
ApplicationIcon |
要傳遞給編譯器以作為 Win32 圖標嵌入的 .ico 圖標文件。 該屬性等效於 /win32icon 編譯器開關。 |
ApplicationManifest |
指定用於生成外部用戶帳戶控制 (UAC) 清單信息的文件的路徑。 它僅適用於面向 Windows Vista 的 Visual Studio 項目。 在大多數情況,該清單是嵌入的。 但如果使用免注冊的 COM 或 ClickOnce 部署,則該清單可以是隨應用程序程序集一起安裝的外部文件。 有關更多信息,請參見本主題中的 NoWin32Manifest 屬性。 |
AssemblySearchPaths |
要在生成時引用程序集解析期間搜索的位置列表。 路徑在此列表中的出現順序是有含義的,因為先列出的路徑優先於后列出的條目。 |
AssemblyName |
生成項目后的最終輸出程序集的名稱。 |
BaseAddress |
指定主輸出程序集的基址。 此屬性等效於 /baseaddress 編譯器開關。 |
BaseOutputPath |
指定輸出文件的基路徑。 如果設置此屬性,MSBuild 將使用 OutputPath = $(BaseOutputPath)\$(Configuration)\。 語法示例:<BaseOutputPath>c:\xyz\bin\</BaseOutputPath> |
BaseIntermediateOutputPath |
指定輸出文件的基中間路徑。 語法示例:<BaseIntermediateOutputPath>c:\xyz\obj\</BaseIntermediateOutputPath> |
BuildInParallel |
一個布爾值,指示在使用多處理器 MSBuild 時並行生成還是清理項目引用。 默認值為 true,該值表示如果系統有多個核心或處理器,則將並行生成項目。 |
BuildProjectReferences |
一個布爾值,指示是否由 MSBuild 生成項目引用。 如果在 Visual Studio 集成開發環境 (IDE) 中生成項目,則設置為 false;否則設置為 true。 |
BaseIntermediateOutputPath |
在其中創建所有配置特定的中間輸出文件夾的頂級文件夾。 默認值為 obj\。 |
CleanFile |
將用作“清理緩存”的文件的名稱。清理緩存是要在清理操作期間刪除的已生成文件的列表。 該文件由生成過程放在中間輸出路徑中。 此屬性只指定沒有路徑信息的文件名。 |
CodePage |
指定要用於編譯中所有源代碼文件的代碼頁。 此屬性等效於 /codepage 編譯器開關。 |
CompilerResponseFile |
可以傳遞給編譯器任務的可選響應文件。 |
配置 |
正在生成的配置,為“調試”或“發布”。 |
CscToolPath |
Visual C# 編譯器 csc.exe 的路徑。 |
CustomBeforeMicrosoftCommonTargets |
要在公用目標導入前自動導入的項目文件或目標文件的名稱。 |
DebugSymbols |
一個布爾值,指示是否由生成來生成符號。 在命令行中設置 /p:DebugSymbols=false 會禁用程序數據庫 (.pdb) 符號文件的生成。 |
DefineConstants |
定義條件編譯器常數。 符號/值對是使用下面的語法指定的,並且彼此之間用分號分隔: symbol1 = value1 ; symbol2 = value2 該屬性等效於 /define 編譯器開關。 |
DefineDebug |
一個布爾值,指示是否定義 DEBUG 常量。 |
DefineTrace |
一個布爾值,指示是否定義 TRACE 常量。 |
DebugType |
定義要生成的調試信息的級別。 有效值為“full”、“pdbonly”和“none”。 |
DelaySign |
一個布爾值,指示是否對程序集進行延遲簽名,而不對其進行完整簽名。 |
DisabledWarnings |
禁止顯示指定的警告。 只有警告標識符的數值部分是必須指定的。 多個警告之間用分號分隔。 此參數對應於 vbc.exe 編譯器的 /nowarn 開關。 |
DisableFastUpToDateCheck |
一個只適用於 Visual Studio 的布爾值。 Visual Studio 生成管理器使用名為 FastUpToDateCheck 的進程來確定項目是否必須重新生成才能保持最新。 此進程比使用 MSBuild 來確定這一點更快。 通過將 DisableFastUpToDateCheck 屬性設置為 true,可以跳過 Visual Studio 生成管理器,並強制生成管理器使用 MSBuild 來確定項目是否為最新版本。 |
DocumentationFile |
作為 XML 文檔文件生成的文件的名稱。 此名稱只包含文件名,不包含路徑信息。 |
ErrorReport |
指定編譯器任務報告內部編譯器錯誤的方式。 有效值為“prompt”、“send”或“none”。此屬性等效於 /errorreport 編譯器開關。 |
ExcludeDeploymentUrl |
GenerateDeploymentManifest 任務 如果項目文件中包含以下元素中的任何部署清單中添加 deploymentProvider 標記:
但是,通過使用 ExcludeDeploymentUrl,可以防止向部署清單中添加 deploymentProvider 標記,即使指定了上述任何 URL 也不例外。若要實現此目的,請在項目文件中添加以下屬性: <ExcludeDeploymentUrl>true</ExcludeDeploymentUrl> ![]()
ExcludeDeploymentUrl 並不在 Visual Studio IDE 中公開,並且只能通過手動編輯項目文件進行設置。設置此屬性不會影響 Visual Studio 中的發布操作;即,仍然向 PublishUrl 指定的 URL 中添加 deploymentProvider 標記。
|
FileAlignment |
指定輸出文件各部分的對齊位置,以字節為單位。 有效值為 512、1024、2048、4096 和 8192。 此屬性等效於 /filealignment 編譯器開關。 |
FrameworkPathOverride |
指定 mscorlib.dll 和 microsoft.visualbasic.dll 的位置。 此參數等效於 vbc.exe 編譯器的 /sdkpath 開關。 |
GenerateDocumentation |
一個布爾型參數,指示是否由生成來生成文檔。 如果設置為 true,生成過程將生成文檔信息,並將此信息與生成任務所創建的可執行文件或庫的名稱一同放置在 .xml 文件中。 |
IntermediateOutputPath |
如果未指定路徑,則為從 BaseIntermediateOutputPath 派生的完整中間輸出路徑。 例如 \obj\debug\。 如果此屬性被重寫,則設置 BaseIntermediateOutputPath 不起任何作用。 |
KeyContainerName |
強名稱密鑰容器的名稱。 |
KeyOriginatorFile |
強名稱密鑰文件的名稱。 |
NoWin32Manifest |
確定編譯器是否在輸出程序集中生成默認的 Win32 清單。 默認值 false 表示為所有應用程序生成默認的 Win32 清單。 此屬性等效於 vbc.exe 的 /nowin32manifest 編譯器開關。 |
ModuleAssemblyName |
要將編譯好的模塊並入其中的程序集的名稱。 該屬性等效於 /moduleassemblyname 編譯器開關。 |
NoLogo |
一個指示是否關閉編譯器徽標的布爾值。 此屬性等效於 /nologo 編譯器開關。 |
NoStdLib |
一個指示是否避免引用標准庫 (mscorlib.dll) 的布爾值 默認值為 false。 |
NoVBRuntimeReference |
一個布爾值,指示是否應將 Visual Basic 運行時 (Microsoft.VisualBasic.dll) 包括為項目中的引用。 |
NoWin32Manifest |
一個布爾值,指示是否將用戶帳戶控制 (UAC) 清單信息嵌入在應用程序的可執行文件中。 它僅適用於面向 Windows Vista 的 Visual Studio 項目。 使用部署項目中ClickOnce免注冊 COM,此元素將被忽略。False(默認值) 指定的用戶帳戶控制 (UAC) 清單信息嵌入到應用程序的可執行文件中。 True 指定不嵌入 UAC 清單信息。 此屬性僅適用於針對 Windows Vista 的 Visual Studio 項目。 在使用 ClickOnce 和免注冊的 COM 部署的項目中,將忽略此屬性。 只有在不希望 Visual Studio 在應用程序的可執行文件中嵌入任何清單信息時,才應該添加 NoWin32Manifest;此過程稱為“虛擬化”。 若要使用虛擬化,請按照下列方式設置 <ApplicationManifest> 和 <NoWin32Manifest>:
|
Optimize |
一個布爾值,在設置為 true 時,允許進行編譯器優化。 此屬性等效於 /optimize 編譯器開關。 |
OptionCompare |
指定如何進行字符串比較。 有效值為“binary”或“text”。此屬性等效於 vbc.exe 的 /optioncompare 編譯器開關。 |
OptionExplicit |
一個布爾值,設置為 true 時,要求在源代碼中顯式聲明變量。 此屬性等效於 /optionexplicit 編譯器開關。 |
OptionInfer |
一個布爾值,設置為 true 時,允許進行變量的類型推理。 此屬性等效於 /optioninfer 編譯器開關。 |
OptionStrict |
一個布爾值,設置為 true 時,將使得生成任務強制使用嚴格類型語義來限制隱式類型轉換。 此屬性等效於 vbc.exe 編譯器的 /optionstrict 開關。 |
OutputPath |
相對於項目目錄,例如“bin\Debug”,指定輸出目錄的路徑。 |
OutputType |
指定輸出文件的文件格式。 此參數可以具有下列值之一:
此屬性等效於 vbc.exe 編譯器的 /target 開關。 |
OverwriteReadOnlyFiles |
一個布爾值,指示要讓生成覆蓋只讀文件還是觸發錯誤。 |
PdbFile |
正在發出的 .pdb 文件的文件名。 此屬性等效於 csc.exe 編譯器的 /pdb 開關。 |
平台 |
生成所面向的操作系統。 有效值為“AnyCPU”、“x86”、“x64”或“Itanium”。 |
RemoveIntegerChecks |
一個布爾值,指示是否禁用整數溢出錯誤檢查。 默認值為 false。 此屬性等效於 vbc.exe 編譯器的 /removeintchecks 開關。 |
SGenUseProxyTypes |
一個布爾值,指示是否應由 SGen.exe 生成代理類型。 SGen 目標使用此屬性來設置 UseProxyTypes 標志。 此屬性默認為 true,並且沒有更高屬性的 UI。 若要生成非 webservice 類型的序列化程序集,請在導入 Microsoft.Common.Targets 或 C#/VB.targets 之前將此屬性添加到項目文件並將其設為 false。 |
SGenToolPath |
一個可選的工具路徑,指示在當前版本的 SGen.exe 被重寫時可以獲得 SGen.exe 的位置。 |
StartupObject |
指定包含 Main 方法或 Sub Main 過程的類或模塊。 此屬性等效於 /main 編譯器開關。 |
ProcessorArchitecture |
解析程序集引用時使用的處理器架構。 有效值為“msil”、“x86”、“amd64”或“ia64”。 |
RootNamespace |
在命名嵌入資源時要使用的根命名空間。 此命名空間屬於嵌入資源清單名稱的一部分。 |
Satellite_AlgorithmId |
在創建附屬程序集時要使用的 AL.exe 哈希算法的 ID。 |
Satellite_BaseAddress |
在使用 CreateSatelliteAssemblies 目標生成特定於區域性的附屬程序集時要使用的基址。 |
Satellite_CompanyName |
要在附屬程序集生成期間傳入 AL.exe 的公司名稱。 |
Satellite_Configuration |
要在附屬程序集生成期間傳入 AL.exe 的配置名稱。 |
Satellite_Description |
要在附屬程序集生成期間傳入 AL.exe 的說明文本。 |
Satellite_EvidenceFile |
在具有資源名稱“Security.Evidence”的附屬程序集中嵌入指定文件。 |
Satellite_FileVersion |
為附屬程序集中的“文件版本”字段指定字符串。 |
Satellite_Flags |
指定附屬程序集中“標志”字段的值。 |
Satellite_GenerateFullPaths |
使生成任務對錯誤消息中報告的所有文件使用絕對路徑。 |
Satellite_LinkResource |
將指定的資源文件鏈接至某個附屬程序集。 |
Satellite_MainEntryPoint |
指定方法的完全限定名稱(即 class.method),以用作在附屬程序集生成期間將模塊轉換為可執行文件時的入口點。 |
Satellite_ProductName |
為附屬程序集中的“產品”字段指定字符串。 |
Satellite_ProductVersion |
為附屬程序集中的“ProductVersion”字段指定字符串。 |
Satellite_TargetType |
將附屬程序集輸出文件的文件格式指定為“library”、“exe”或“win”。默認值為“library”。 |
Satellite_Title |
為附屬程序集中的“標題”字段指定字符串。 |
Satellite_Trademark |
為附屬程序集中的“商標”字段指定字符串。 |
Satellite_Version |
指定附屬程序集的版本信息。 |
Satellite_Win32Icon |
在附屬程序集中插入一個 .ico 圖標文件。 |
Satellite_Win32Resource |
在附屬程序集中插入一個 Win32 資源(.res 文件)。 |
SubsystemVersion |
指定的最低版本,可以使用生成的可執行文件的子系統。 此屬性等效於 /subsystemversion 編譯器開關。 此屬性的默認值的信息,請參閱/subsystemversion (Visual Basic)或/subsystemversion(C# 編譯器選項)。 |
TargetCompactFramework |
運行您所生成的應用程序所需要的 .NET Compact Framework 的版本。 通過指定此屬性,您可以引用否則將無法引用的某些 Framework 程序集。 |
TargetFrameworkVersion |
運行所生成的應用程序所需要的 .NET Framework 的版本。 通過指定此屬性,您可以引用否則將無法引用的某些 Framework 程序集。 |
TreatWarningsAsErrors |
一個布爾型參數,如果設置為 true,則會導致將所有警告都視為錯誤。 此參數等效於 /nowarn 編譯器開關。 |
UseHostCompilerIfAvailable |
一個布爾型參數,如果設置為 true,則會使得生成任務使用進程內編譯器對象(如果可用)。 此參數只供 Visual Studio 使用。 |
Utf8Output |
一個布爾型參數,如果設置為 true,則使用 UTF-8 編碼記錄編譯器輸出。 此參數等效於 /utf8Output 編譯器開關。 |
VbcToolPath |
一個可選路徑,在當前版本的 vbc.exe 被重寫時它可以指示 vbc.exe 的另一個位置。 |
VbcVerbosity |
指定 Visual Basic 編譯器輸出的詳細級別。 有效值為“Quiet”、“Normal”(默認值)或“Verbose”。 |
WarningsAsErrors |
指定將被視為錯誤的警告的列表。 此參數等效於 /warnaserror 編譯器開關。 |
WarningsNotAsErrors |
指定不被視為錯誤的警告的列表。 此參數等效於 /warnaserror 編譯器開關。 |
Win32Manifest |
應嵌入最終程序集中的清單文件的名稱。 此參數等效於 /win32Manifest 編譯器開關。 |
Wint32Resource |
要嵌入最終程序集中的 Win32 資源的文件名。 此參數等效於 /win32resource 編譯器開關。 |