Csc 任务
包装 csc.exe,生成可执行 (.exe) 文件、动态链接库(.dll 文件)或者代码模块(.netmodule 文件) 。 有关 csc.exe 的详细信息,请参阅 C# 编译器选项 。
参数
下表描述了 Csc
任务的参数。
参数 | 说明 |
---|---|
AdditionalLibPaths |
可选 String[] 参数。指定要在其中搜索引用的其他目录。 有关详细信息,请参阅 -lib(C# 编译器选项)。 |
AddModules |
可选 String 参数。指定将构成程序集一部分的一个或多个模块。 有关详细信息,请参阅 (C# 编译器选项)。 |
AllowUnsafeBlocks |
可选 Boolean 参数。如果为 true ,则编译使用 unsafe 关键字的代码。 有关详细信息,请参阅 -unsafe(C# 编译器选项)。 |
ApplicationConfiguration |
可选 String 参数。指定包含程序集绑定设置的应用程序配置文件。 |
BaseAddress |
可选 String 参数。指定要加载 DLL 的首选基址。 DLL 的默认基址由 .NET Framework 公共语言运行时设置。 有关详细信息,请参阅 -baseaddress(C# 编译器选项)。 |
CheckForOverflowUnderflow |
可选 Boolean 参数。指定溢出数据类型边界的整数算法是否导致运行时异常。 有关详细信息,请参阅 -checked(C# 编译器选项)。 |
ChecksumAlgorithm |
可选 String 参数。指定用于计算 PDB 文件中存储的源文件校验和的算法。 该算法必须是 SHA1(默认)或 SHA256。 请参阅 ChecksumAlgorithm。 |
CodeAnalysisRuleset |
可选 String 参数。 指定可禁用特定诊断的规则集文件。 请参阅 CodeAnalysisRuleSet。 |
CodePage |
可选 Int32 参数。指定要用于编译中所有源代码文件的代码页。 有关详细信息,请参阅 -codepage(C# 编译器选项)。 |
DebugType |
可选 String 参数。指定调试类型。 DebugType 可以是 full 或 pdbonly 。 默认值是 full ,这使得调试程序能够附加到正在运行的程序中。 指定在调试程序中启动该程序时,pdbonly 启用源代码调试,但正在运行的程序附加到调试程序时,只显示汇编程序。此参数替代 EmitDebugInformation 参数。有关详细信息,请参阅 -debug(C# 编译器选项)。 |
DefineConstants |
可选 String 参数。定义预处理器符号。 有关详细信息,请参阅 -define(C# 编译器选项)。 |
DelaySign |
可选 Boolean 参数。如果为 true ,则指定仅需要将公钥放在程序集中。 如果为 false ,则指定需要完全签名的程序集此参数无任何效果,除非与 KeyFile 或 KeyContainer 参数配合使用。有关详细信息,请参阅 -delaysign(C# 编译器选项)。 |
Deterministic |
可选 Boolean 参数。如果为 true ,则会导致编译器输出的程序集的二进制内容在整个编译中相同(如果输入相同)。有关详细信息,请参阅 (C# 编译器选项)。 |
DisabledWarnings |
可选 String 参数。指定要禁用的警告的列表。 有关详细信息,请参阅 nowarn(C# 编译器选项)。 |
DocumentationFile |
可选 String 参数。将文档注释处理到一个 XML 文件中。 有关详细信息,请参阅 doc(C# 编译器选项)。 |
EmbedAllSources |
可选 Boolean 参数。在 PDB 中嵌入所有源文件。 有关详细信息,请参阅 -embed(C# 编译器选项) |
EmitDebugInformation |
可选 Boolean 参数。如果为 true ,则该任务生成调试信息并将它放置在程序数据库 (pdb) 文件中。 如果为 false ,则此任务不发出任何调试信息。 默认值为 false 。 有关详细信息,请参阅 -debug(C# 编译器选项)。 |
ErrorLog |
可选 String 参数。指定要记录所有编译器和分析器诊断的文件。 请参阅 ErrorLog。 |
ErrorReport |
可选 String 参数。提供向 Microsoft 报告 C# 内部错误的简便方法。 此参数可以具有 prompt 、send 或 none 的值。 如果该参数设置为 prompt ,则内部编译器错误发生时,你将收到一条提示。 该提示让你将一个 Bug 报告以电子方式发送给 Microsoft。 如果该参数设置为 send ,则系统将自动发送 Bug 报告。 如果该参数设置为 none ,则仅在编译器的文本输出中报告错误。 默认值为 none 。 有关详细信息,请参阅 -errorreport(C# 编译器选项)。 |
FileAlignment |
可选 Int32 参数。指定输出文件中各节的大小。 有关详细信息,请参阅 -filealign(C# 编译器选项)。 |
GenerateFullPaths |
可选 Boolean 参数。如果为 true ,则指定编译器输出中文件的绝对路径。 如果为 false ,则指定文件的名称。 默认值为 false 。 有关详细信息,请参阅 -fullpaths(C# 编译器选项)。 |
HighEntropyVA |
可选的 Boolean 参数启用高熵地址空间布局随机化 (ASLR)。 请参阅 HighEntropyVA。 |
KeyContainer |
可选 String 参数。指定加密密钥容器的名称。 有关详细信息,请参阅 -keycontainer(C# 编译器选项)。 |
KeyFile |
可选 String 参数。指定含有加密密钥的文件名。 有关详细信息,请参阅 -keyfile(C# 编译器选项)。 |
LangVersion |
可选 String 参数。指定要使用的语言版本。 有关详细信息,请参阅 -langversion(C# 编译器选项)。 |
LinkResources |
可选 ITaskItem[] 参数。创建指向输出文件中的 .NET Framework 资源的链接;资源文件不会放入输出文件中。 传递到此参数的项可以具有名为 LogicalName 和 Access 的可选元数据条目。 LogicalName 对应于 /linkresource 开关的 identifier 参数,Access 对应于 accessibility-modifier 参数。 有关详细信息,请参阅 -linkresource(C# 编译器选项)。 |
MainEntryPoint |
可选 String 参数。指定 Main 方法的位置。 有关详细信息,请参阅 -main(C# 编译器选项)。 |
ModuleAssemblyName |
可选 String 参数。指定此模块所属程序集的名称。 |
NoConfig |
可选 Boolean 参数。如果为 true ,则告知编译器不使用 csc.rsp 文件进行编译 。 有关详细信息,请参阅 -noconfig(C# 编译器选项)。 |
NoLogo |
可选 Boolean 参数。如果为 true ,则禁止显示编译器横幅信息。 有关详细信息,请参阅 -nologo(C# 编译器选项)。 |
NoStandardLib |
可选 Boolean 参数。如果为 true ,则防止导入 mscorlib.dll,这定义了整个 System 命名空间。 如果你想要定义或创建自己的 System 命名空间和对象,请使用此参数。 有关详细信息,请参阅 -nostdlib(C# 编译器选项)。 |
NoWin32Manifest |
可选 Boolean 参数。如果为 true ,则不包括默认的 Win32 清单。 |
Nullable |
可选 String 参数。指定可为空上下文。 参数必须为以下项之一: enable 、disable 、warnings 或 annotations 。 请参阅 Nullable。 |
Optimize |
可选 Boolean 参数。如果为 true ,则启用优化。 如果为 false ,则禁用优化。 有关详细信息,请参阅 -optimize(C# 编译器选项)。 |
OutputAssembly |
可选 String 输出参数。指定输出文件的名称。 有关详细信息,请参阅 -out(C# 编译器选项)。 |
OutputRefAssembly |
可选 String 参数。指定输出引用程序集文件的名称。 有关详细信息,请参阅 -refout (C# 编译器选项)。 |
PathMap |
可选 String 参数。指定如何将物理路径映射到编译器输出的源路径名称。 请参阅 PathMap。 |
PdbFile |
可选 String 参数。指定调试信息文件名。 默认名称是扩展名为 .pdb 的输出文件名。 |
Platform |
可选 String 参数。指定将作为输出文件目标的处理器平台。 此参数可以具有 x86 、x64 或 anycpu 的值。 默认值为 anycpu 。 有关详细信息,请参阅 -platform(C# 编译器选项)。 |
PreferredUILang |
可选 String 参数。 指定 C# 编译器显示输出(如错误消息)的语言。 请参阅 PreferredUILang。 |
PublicSign |
可选 Boolean 参数。 公开对输出程序集签名。 请参阅 PublicSign。 |
References |
可选 ITaskItem[] 参数。促使该任务将公共类型信息从指定项导入到当前项目中。 有关详细信息,请参阅 -reference(C# 编译器选项)。 可以通过将元数据 Aliases 添加到原始的“参考”项,在 MSBuild 文件中指定 C# 引用别名。 例如,在以下 Csc 命令行中设置别名“LS1”:CSC /r:LS1=MyCodeLibrary.dll /r:LS2=MyCodeLibrary2.dll *.cs 将使用: <Reference Include="MyCodeLibrary"> <Aliases>LS1</Aliases> </Reference> |
RefOnly |
可选 Boolean 参数。生成引用程序集作为主输出,而非生成完整程序集。 请参阅 ProduceOnlyReferenceAssembly。 |
ReportAnalyzer |
可选 Boolean 参数。报告其他分析器信息,如执行时间。 请参阅 ReportAnalyzer。 |
Resources |
可选 ITaskItem[] 参数。将 .NET Framework 资源嵌入到输出文件。 传递到此参数的项可以具有名为 LogicalName 和 Access 的可选元数据条目。 LogicalName 对应于 /resource 开关的 identifier 参数,Access 对应于 accessibility-modifier 参数。 有关详细信息,请参阅 -resource(C# 编译器选项)。 |
ResponseFiles |
可选 String 参数。指定包含此任务命令的响应文件。 有关详细信息,请参阅 @(指定响应文件)。 |
Sources |
可选 ITaskItem[] 参数。指定一个或多个 C# 源文件。 |
TargetType |
可选 String 参数。指定输出文件的文件格式。 此参数可以具有 library 或 winexe 的值,前者将创建代码库 exe ,代码库将创建控制台应用程序 module ,应用程序将创建一个模块,后者将创建 Windows 程序。 默认值为 library 。 有关详细信息,请参阅 -target(C# 编译器选项)。 |
TreatWarningsAsErrors |
可选 Boolean 参数。如果为 true ,则将所有警告视为错误。 有关详细信息,请参阅 -warnaserror(C# 编译器选项)。 |
UseHostCompilerIfAvailable |
可选 Boolean 参数。指示该任务使用进程内编译器对象(如果可用)。 仅由 Visual Studio 使用。 |
Utf8Output |
可选 Boolean 参数。记录使用 UTF-8 编码的编译器输出。 有关详细信息,请参阅 -utf8output(C# 编译器选项)。 |
WarningLevel |
可选 Int32 参数。指定编译器显示的警告级别。 有关详细信息,请参阅 -warn(C# 编译器选项)。 |
WarningsAsErrors |
可选 String 参数。指定将被视为错误的警告的列表。 有关详细信息,请参阅 -warnaserror(C# 编译器选项)。 此参数替代 TreatWarningsAsErrors 参数。 |
WarningsNotAsErrors |
可选 String 参数。指定不被视为错误的警告的列表。 有关详细信息,请参阅 -warnaserror(C# 编译器选项)。 只有 TreatWarningsAsErrors 参数设置为 true 时,此参数才有用。 |
Win32Icon |
可选 String 参数。在程序集中插入 .ico 文件,为输出文件赋予其在“文件资源管理器”中所需的外观 。 有关详细信息,请参阅 -win32icon(C# 编译器选项)。 |
Win32Manifest |
可选 String 参数。指定要包含的 Win32 清单。 |
Win32Resource |
可选 String 参数。在输出文件中插入 Win32 资源 (.res) 文件 。 有关详细信息,请参阅 -win32res(C# 编译器选项)。 |
ToolTaskExtension 参数
此任务继承自 ToolTaskExtension 类,该类继承自 ToolTask 类,后者本身继承自 Task 类。 此继承链向从它们派生的任务添加了几个参数。
下表介绍基类的参数:
参数 | 说明 |
---|---|
EchoOff | 可选 bool 参数。设置为 true 时,此任务会将 /Q 传递到 cmd.exe 命令行,以便命令行不会复制到 stdout。 |
EnvironmentVariables | 可选的 String 数组参数。环境变量定义的数组,用分号分隔。 每个定义都应指定用等号分隔的环境变量名称和值。 这些变量会传递到生成的可执行文件以及(有选择地重写)常规环境块。 例如, Variable1=Value1;Variable2=Value2 。 |
ExitCode | 可选 Int32 输出只读参数。指定执行的命令提供的退出代码。 如果任务记录了任何错误,但进程的退出代码为 0(成功),则这设置为 -1。 |
LogStandardErrorAsError | 可选 bool 参数。如果是 true ,则在标准错误流上收到的所有消息都记录为错误。 |
StandardErrorImportance | 可选 String 参数。用于从标准错误流记录文本的重要性。 |
StandardOutputImportance | 可选 String 参数。用于从标准输出流记录文本的重要性。 |
Timeout | 可选 Int32 参数。指定终止任务可执行文件之前的时间量(以毫秒为单位)。 默认值是 Int.MaxValue ,指示没有超时期限。 超时以毫秒为单位。 |
ToolExe | 可选 string 参数。项目可能会实现此参数以重写 ToolName。 任务可能会重写此参数以保留 ToolName。 |
ToolPath | 可选 string 参数。指定任务从中加载基础可执行文件的位置。 如果未指定此参数,则任务会使用与运行 MSBuild 的框架版本对应的 SDK 安装路径。 |
UseCommandProcessor | 可选 bool 参数。设置为 true 时,此任务会为命令行创建一个批处理文件,并使用命令处理器执行它(而不是直接执行命令)。 |
YieldDuringToolExecution | 可选 bool 参数。设置为 true 时,此任务会在其任务执行时生成节点。 |
示例
以下示例使用 Csc
任务来编译 Compile
项集合的源文件中的可执行文件。
<CSC
Sources="@(Compile)"
OutputAssembly="$(AppName).exe"
EmitDebugInformation="true" />