MSBuild 項目屬性以及任務參考


 

MSBuild 任務參考

 

任務提供運行在生成過程的代碼。 在以下任務列表包含 MSBuild。 安裝時 Visual C++ ,可使用其他任務來生成 Visual C++ 項目。 有關更多信息,請參見 特定於 Visual C++ 的 MSBuild 任務

除了在本節中的主題列表的參數外,還具有以下參數:

 

參數

說明

Condition

選項 String 參數。

MSBuild 引擎用來確定的 Boolean 表達式是否執行此任務。 有關由 MSBuild支持的條件的信息,請參見 MSBuild 條件

ContinueOnError

選項 Boolean 參數

是否運行的目標指定其余任務的 Boolean 值,如果此任務失敗。 ,因為 Execute 方法引發異常或返回 false,任務會失敗。

如果 ContinueOnError 設置為 true,余下的任務運行的和失敗不會導致整個目標失敗。

如果 ContinueOnError 設置為 false,余下的任務未運行,整個目標失敗。

默認情況下, ContinueOnErrorfalse

任務:
 
任務基類

添加一些參數。 Task 從類派生的任務。

TaskExtension 基類

添加一些參數。 TaskExtension 從類派生的任務。

ToolTaskExtension 基類

添加一些參數。 ToolTaskExtension 從類派生的任務。

AL(程序集鏈接器)任務

生成一個具有清單的程序集是從模塊或資源文件的一個或多個文件。

AspNetCompiler 任務

包裝 aspnet_compiler.exe,實用工具預編譯 ASP.NET 應用程序。

AssignCulture 任務

分配區域性標識符到項目中。

AssignProjectConfiguration 任務

接受配置字符串列表並將其分配給指定的項目。

AssignTargetPath 任務

,如果尚未指定接受文件的列表,並添加 <TargetPath> 屬性。

CallTarget 任務

調用項目文件的目標。

CombinePath 任務

指定的路徑組合為單個路徑。

ConvertToAbsolutePath 任務

相對路徑或引用轉換為絕對路徑。

Copy 任務

將文件復制到新的位置。

CreateCSharpManifestResourceName 任務

創建一個從給定的 .resx 文件名或其他資源的一個 Visual C#樣式的清單名稱。

CreateItem 任務

輸入項填充項目集合,允許項從一個列表復制到另一個。

CreateProperty 任務

輸入值填充屬性,允許將值從一個屬性或字符串復制到另一個。

CreateVisualBasicManifestResourceName 任務

創建一個從給定的 .resx 文件名或其他資源的一個 Visual Basic樣式的清單名稱。

Csc 任務

調用 Visual C# 編譯器生成可執行文件、動態鏈接庫或代碼模塊。

Delete 任務

刪除指定的文件。

Error 任務

停止生成錯誤,並根據計算的條件語句的記錄。

Exec 任務

運行指定的程序或命令使用指定的參數。

FindAppConfigFile 任務

查找 app.config 文件,如果有,在提供的列表。

FindInList 任務

查找在具有匹配的項規范的項的項目指定列表。

FindUnderPath 任務

確定指定的項目集合的項存在於指定的文件夾及其所有子文件夾。

FormatUrl 任務

將 URL 轉換為正確的 URL 格式。

FormatVersion 任務

追加版本號上。

GenerateApplicationManifest 任務

生成清單。 ClickOnce 的應用程序或本機清單。

GenerateBootstrapper 任務

提供一種自動化的方式發現,下載和安裝應用程序及其系統必備組件。

GenerateDeploymentManifest 任務

生成清單。 ClickOnce 的部署。

GenerateResource 任務

將 .txt 和為公共語言運行時二進制 .resources 文件的 .resx 文件。

GenerateTrustInfo 任務

生成和基本應用程序信任從 TargetZoneExcludedPermissions 參數指示,和。

GetAssemblyIdentity 任務

從指定的文件和輸出檢索程序集標識標識信息。

GetFrameworkPath 任務

檢索路徑。 .NET Framework 程序集。

GetFrameworkSdkPath 任務

檢索的路徑 Windows 軟件開發包 (SDK)。

GetReferenceAssemblyPaths 任務

返回各種框架的引用程序集路徑。

LC 任務

生成 .license 文件從 .licx 文件。

MakeDir 任務

創建目錄,並且,如果需要,在中,所有父目錄。

Message 任務

在生成期間記錄消息。

Move 任務

將文件移至新位置。

MSBuild 任務

生成另一個 MSBuild 項目的 MSBuild 項目。

ReadLinesFromFile 任務

讀取項列表從文本文件。

RegisterAssembly 任務

讀取指定程序集中的元數據並添加注冊表中添加必要的項。

RemoveDir 任務

移除指定的目錄及其所有文件和子目錄。

RemoveDuplicates 任務

移除重復從指定的項目集合中的項。

RequiresFramework35SP1Assembly 任務

確定應用程序是否需要 .NET framework 3.5 SP1。

ResGen 任務

過時。 使用 GenerateResource 任務 任務來回公共語言運行時二進制 .resources 文件將 .txt 和 .resx 文件。

ResolveAssemblyReference 任務

確定依賴指定程序集的所有程序集。

ResolveComReference 任務

獲取一個或多個的列表類型庫名稱或 .tlb 文件並解決這些類型庫到磁盤上的位置。

ResolveKeySource 任務

確定強名稱密鑰源

ResolveManifestFiles 任務

解決在生成過程中的以下各項到清單生成的文件:生成的項目,依賴項,附屬,內容,調試符號和文檔。

ResolveNativeReference 任務

解析本機引用。

ResolveNonMSBuildProjectOutput 任務

確定非 MSBuild 項目引用的輸出文件。

SGen 任務

創建一個 XML 序列化程序對指定程序集中的類型。

SignFile 任務

使用指定的證書,若要為指定的文件。

Touch 任務

設置文件的訪問和修改時間。

UnregisterAssembly 任務

COM 互操作的指定程序集的預期取消。

UpdateManifest 任務

更新清單中的所選屬性並重新簽名。

Vbc 任務

調用 Visual Basic 編譯器生成可執行文件、動態鏈接庫或代碼模塊。

Warning 任務

記錄在根據計算的條件語句的生成過程的警告。

WriteCodeFragment 任務

使用指定的生成代碼片段,生成一個臨時代碼文件。 不會刪除該文件。

WriteLinesToFile 任務

寫入指定的文本文件中的指定項。

XmlPeek 任務

返回 XPath 查詢指定的值從 XML 文件。

XmlPoke 任務

XPath 查詢指定的值設置為 XML 文件。

XslTransformation 任務

轉換 XML 輸入使用 可擴展樣式表語言轉換 (xslt) 或生成 XSLT 和輸出到輸出設備或文件。

 

 

對於所有 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 標記:

  • UpdateUrl

  • InstallUrl

  • PublishUrl

但是,通過使用 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>

  • 對於 Visual Basic 項目,請移除 <ApplicationManifest> 節點 (在 Visual Basic 項目中,如果存在 <ApplicationManifest> 節點,將忽略 <NoWin32Manifest>)。

  • 對於 Visual C# 項目,請將 <ApplicationManifest> 設置為 False 並將 <NoWin32Manifest> 設置為 True (在 Visual C# 項目中,<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

指定輸出文件的文件格式。 此參數可以具有下列值之一:

  • Library。 創建一個代碼庫。 (默認值。)

  • Exe。 創建控制台應用程序。

  • Module。 創建一個模塊。

  • Winexe。 創建一個基於 Windows 的程序。

此屬性等效於 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 編譯器開關。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM