Csc 任务

包装 CSC.exe 并生成可执行文件(.exe 文件)、动态链接库(.dll 文件)或代码模块(. .netmodule 文件)。 有关 CSC.exe 的更多信息,请参见 C# 编译器选项

参数

下表描述了 Csc 任务的参数。

Parameter

说明

AdditionalLibPaths

可选 String[] 参数。

指定将在其中搜索引用的其他目录。 有关更多信息,请参见 /lib(C# 编译器选项)

AddModules

可选 String 参数。

指定一个或多个将成为程序集的一部分的模块。 有关更多信息,请参见 /addmodule(C# 编译器选项)

AllowUnsafeBlocks

可选 Boolean 参数。

如果为 true,则编译使用 unsafe 关键字的代码。 有关更多信息,请参见 /unsafe(C# 编译器选项)

ApplicationConfiguration

可选 String 参数。

指定包含程序集绑定设置的应用程序配置文件。

BaseAddress

可选 String 参数。

指定加载 DLL 的首选基址。 DLL 的默认基址由 .NET Framework 公共语言运行时设置。 有关更多信息,请参见 /baseaddress(C# 编译器选项)

CheckForOverflowUnderflow

可选 Boolean 参数。

指定溢出数据类型边界的整数算法是否会在运行时导致异常。 有关更多信息,请参见 /checked(C# 编译器选项)

CodePage

可选 Int32 参数。

指定要用于编译中所有源代码文件的代码页。 有关更多信息,请参见 /codepage(C# 编译器选项)

DebugType

可选 String 参数。

指定调试类型。 DebugType 可以是 fullpdbonly。 默认值为 full,这意味着允许将调试器附加到正在运行的程序。 指定 pdbonly 会允许在调试器中启动程序时进行源代码调试,但仅在正在运行的程序附加到调试器时才显示汇编程序。

此参数重写 EmitDebugInformation 参数。

有关更多信息,请参见 /debug (C# 编译器选项)

DefineConstants

可选 String 参数。

定义预处理器符号。 有关更多信息,请参见 /define(C# 编译器选项)

DelaySign

可选 Boolean 参数。

如果为 true,表示您需要完全签名的程序集。 如果为 false,则表示您只希望将公钥放入程序集中。

除非与 KeyFileKeyContainer 参数一起使用,否则此参数无效。

有关更多信息,请参见 /delaysign(C# 编译器选项)

DisabledWarnings

可选 String 参数。

指定要禁用的警告列表。 有关更多信息,请参见 /nowarn(C# 编译器选项)

DocumentationFile

可选 String 参数。

将文档注释处理到一个 XML 文件中。 有关更多信息,请参见 /doc(C# 编译器选项)

EmitDebugInformation

可选 Boolean 参数。

如果为 true,任务将生成调试信息并将其放入程序数据库文件 (.pdb) 中。 如果为 false,则任务将不会发出任何调试信息。 默认值为 false。 有关更多信息,请参见 /debug (C# 编译器选项)

ErrorReport

可选 String 参数。

提供一种向 Microsoft 报告 C# 内部错误的方便途径。 此参数的值可以为 promptsendnone。 如果该参数设置为 prompt,将在发生内部编译器错误时提示您。 该提示允许您以电子方式向 Microsoft 发送 Bug 报告。 如果该参数设置为 send,则将自动发送 Bug 报告。 如果该参数设置为 none,则将仅在编译器的文本输出中报告该错误。 默认值为 none。 有关更多信息,请参见 /errorreport(C# 编译器选项)

FileAlignment

可选 Int32 参数。

指定输出文件中节的大小。 有关更多信息,请参见 /filealign(C# 编译器选项)

GenerateFullPaths

可选 Boolean 参数。

如果为 true,将在编译器输出中指定文件的绝对路径。 如果为 false,则指定文件的名称。 默认值为 false。 有关更多信息,请参见 /fullpaths(C# 编译器选项)

KeyContainer

可选 String 参数。

指定加密密钥容器的名称。 有关更多信息,请参见 /keycontainer(C# 编译器选项)

KeyFile

可选 String 参数。

指定包含加密密钥的文件名。 有关更多信息,请参见 /keyfile(C# 编译器选项)

LangVersion

可选 String 参数。

指定要使用的语言版本。 有关更多信息,请参见 /langversion(C# 编译器选项)

LinkResources

可选 ITaskItem[] 参数。

在输出文件中创建指向 .NET Framework 资源的链接;资源文件不放置在输出文件中。

传入到此参数中的项可以具有名为 LogicalNameAccess 的可选元数据项。 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,将禁止导入定义整个 System 命名空间的 mscorlib.dll。 如果您希望定义或创建自己的 System 命名空间和对象,请使用此参数。 有关更多信息,请参见 /nostdlib(C# 编译器选项)

NoWin32Manifest

可选 Boolean 参数。

如果为 true,则不包括默认的 Win32 清单。

Optimize

可选 Boolean 参数。

如果为 true,将启用优化。 如果为 false,则禁用优化。 有关更多信息,请参见 /optimize(C# 编译器选项)

OutputAssembly

可选 String 输出参数。

指定输出文件的名称。 有关更多信息,请参见 /out(C# 编译器选项)

PdbFile

可选 String 参数。

指定调试信息文件名。 默认名称是带 .pdb 扩展名的输出文件名。

Platform

可选 String 参数。

指定输出文件的目标处理器平台。 此参数的值可以为 x86x64anycpu。 默认值为 anycpu。 有关更多信息,请参见 /platform(C# 编译器选项)

References

可选 ITaskItem[] 参数。

使任务将公共类型信息从指定项导入到当前项目。 有关更多信息,请参见 /reference(C# 编译器选项)

通过将元数据 Aliases 添加到原始“Reference”项中,可以在 MSBuild 文件中指定 Visual C# 引用别名。 例如,若要在以下 CSC 命令行中设置别名“LS1”:

csc /r:LS1=MyCodeLibrary.dll /r:LS2=MyCodeLibrary2.dll *.cs

请使用:

<Reference Include="MyCodeLibrary">
  <Aliases>LS1</Aliases>
</Reference>

Resources

可选 ITaskItem[] 参数。

在输出文件中嵌入 .NET Framework 资源。

传入到此参数中的项可以具有名为 LogicalNameAccess 的可选元数据项。 LogicalName 对应于 /resource 开关的 identifier 参数,Access 对应于 accessibility-modifier 参数。 有关更多信息,请参见 /resource (C# 编译器选项)

ResponseFiles

可选 String 参数。

指定包含此任务的命令的响应文件。 有关更多信息,请参见 @(C# 编译器选项)

Sources

可选 ITaskItem[] 参数。

指定一个或多个 Visual C# 源文件。

TargetType

可选 String 参数。

指定输出文件的文件格式。 此参数的值可以为 library(创建代码库)、exe(创建控制台应用程序)、module(创建模块)或 winexe(创建 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文件程序集中,则输出文件在文件Explorer所需的外观。 有关更多信息,请参见 /win32icon (C# 编译器选项)

Win32Manifest

可选 String 参数。

指定要包含的 Win32 清单。

Win32Resource

可选 String 参数。

在输出文件中插入 Win32 资源文件 (.res)。 有关更多信息,请参见 /win32res(C# 编译器选项)

备注

除了上面列出的参数,此任务还将从 Microsoft.Build.Tasks.ManagedCompiler 类继承参数,该类从 ToolTaskExtension 类继承,后者本身又从 ToolTask 类继承。 有关这些附加参数及其说明的列表,请参见 ToolTaskExtension 基类

示例

下面的示例使用 Csc 任务基于 Compile 项集合中的源文件编译一个可执行文件。

<CSC
    Sources="@(Compile)"
    OutputAssembly="$(AppName).exe"
    EmitDebugInformation="true" />

请参见

概念

MSBuild 任务

其他资源

MSBuild 任务参考