Share via


Csc 任务

更新:2007 年 11 月

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

参数

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

参数

说明

AdditionalLibPaths

可选的 String[] 参数。

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

AddModules

可选的 String 参数。

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

AllowUnsafeBlocks

可选的 Boolean 参数。

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

BaseAddress

可选的 String 参数。

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

CheckForOverflowUnderflow

可选的 Boolean 参数。

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

CodePage

可选的 Int32 参数。

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

DebugType

可选的 String 参数。

指定调试类型。DebugType 可以是 full,也可以是 pdbonly。默认值为 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(链接到 .NET Framework 资源)(C# 编译器选项)

MainEntryPoint

可选的 String 参数。

指定 Main 方法的位置。有关更多信息,请参见 /main(指定 Main 方法的位置)(C# 编译器选项)

NoConfig

可选的 Boolean 参数。

如果为 true,将指示编译器不要使用 csc.rsp 文件进行编译。有关更多信息,请参见 /noconfig(忽略 csc.rsp)(C# 编译器选项)

NoLogo

可选的 Boolean 参数。

如果为 true,将禁止显示编译器版本标志信息。有关更多信息,请参见 /nologo(取消显示版权标志信息)(C# 编译器选项)

NoStandardLib

可选的 Boolean 参数。

如果为 true,将禁止导入定义整个 System 命名空间的 mscorlib.dll。如果您希望定义或创建自己的 System 命名空间和对象,请使用此参数。有关更多信息,请参见 /nostdlib(不导入标准库)(C# 编译器选项)

Optimize

可选的 Boolean 参数。

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

OutputAssembly

可选的 String 输出参数。

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

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# 编译器选项)

Timeout

可选的 Int32 参数。

指定在多少毫秒后终止任务可执行文件。默认值为 Int.MaxValue,这表示没有超时期限。

ToolPath

可选的 String 参数。

指定任务将从什么位置加载基础可执行文件 (CSC.exe)。如果未指定此参数,任务将使用与运行 MSBuild 的 Framework 版本对应的 SDK 安装路径。

TreatWarningsAsErrors

可选的 Boolean 参数。

如果为 true,则会将所有警告视为错误。有关更多信息,请参见 /warnaserror(将警告视为错误)(C# 编译器选项)

UseHostCompilerIfAvailable

可选的 Boolean 参数。

指示任务使用进程内编译器对象(如果有的话)。仅由 Visual Studio 使用。

Utf8Output

可选的 Boolean 参数。

使用 UTF-8 编码记录编译器输出。有关更多信息,请参见 /utf8output(使用 UTF-8 显示编译器消息)(C# 编译器选项)

WarningLevel

可选的 Int32 参数。

指定编译器要显示的警告等级。有关更多信息,请参见 /warn(指定警告等级)(C# 编译器选项)

WarningsAsErrors

可选的 String 参数。

指定将被视为错误的警告的列表。有关更多信息,请参见 /warnaserror(将警告视为错误)(C# 编译器选项)

此参数重写 TreatWarningsAsErrors 参数。

WarningsNotAsErrors

可选的 String 参数。

指定不被视为错误的警告的列表。有关更多信息,请参见 /warnaserror(将警告视为错误)(C# 编译器选项)

只有当 TreatWarningsAsErrors 参数设置为 true 时,此参数才有用。

WarningLevel

可选的 Int32 参数。

设置适当的警告等级,这是 0 到 4 之间的值。有关更多信息,请参见 /warn(指定警告等级)(C# 编译器选项)

Win32Icon

可选的 String 参数。

在程序集中插入 .ico 文件,使输出文件在 Windows 资源管理器中具有所需的外观。有关更多信息,请参见 /win32icon(导入 .ico 文件)(C# 编译器选项)

Win32Resource

可选的 String 参数。

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

示例

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

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

请参见

概念

MSBuild 任务

其他资源

MSBuild 任务参考