编译器增强功能
内嵌警告控制
Whidbey 另一项新功能可让开发人员借助指定的编译器指令,控制是否要报告特定代码区域的警告信息。此指令与 #pragma 语句相当类似。以下 是使用 pragma 关键字的例子,可使编译器针对特定代码块,禁用错误报告。
#pragma warning disable 135 // Disable warning CS135 in this block #pragma warning restore 135 |
命令行选项
Whidbey 包含数项编译器新选项。 以下是每种新选项的简要说明 :
/warnaserror:在 Visual Studio .NET 2003 的 warnaserror 命令行选项中,可让开发人员将所有编译器警告皆以错误来处理。在 Whidbey 中,此功能进一步扩充,让开发人员控制是否要将特定的警告视作错误来处理。以下例子示范如何标示 618 之外的所有警告,将之视为错误来处理。
csc /warnaserror /warnaserror-:618?...
另一种方式,则是如下列例子所示,将单一警告标示为错误:
csc "/warnaserror:1595 ...
/errorreport:<string>:errorreport
命令行选项控制 Dr. Watson 产生编译器的报告。
有关 Dr. Watson 的详细信息,参见:
www.microsoft.com/technet/prodtechnol/winxppro/proddocs/drwatson_setup.asp (英文)。
以下为 errorreport 选项可用的参数:
/errorreport:prompt:此选项显示关于错误信息的对话框。
/errorreport:send: 此选项指示当编译器发现内部错误时,“毋须”用模式对话框提示用户。不过,编译器仍需继续编译,并传送错误报告。原本出现在 对话框中的文字,将显示在命令行。
/errorreport:none:此选项指示毋须将错误信息传送至 Microsoft。此行为同样见之于 Visual Studio 2002 与 Visual Studio 2003,是默认选项。
/langversion:<<string>:langversion 命令行选项的主要功能 是启用严格的 ECMA/ISO 一致性。当此选项设为 ISO-1,针对 Whidbey 所有不符合标准的功能,编译器皆报告错误。
/keycontainer、/keyfile、/delaysign:这些选项用来取代同一名称的属性,以便在指派命令行形参时有更大的弹性。