扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
尽管通过命令行工作时可以体验到其与生俱来的优势,但没有人能够否认键入数十个编译器选项可能导致手指抽筋和录入错误。为了有助于减轻这两个问题,C#编译器支持使用响应文件。
注 所有命令提示都允许您使用Up和Down箭头键遍历以前的命令。
响应文件(它们按照约定采用*.rsp文件扩展名)包含您希望供给到csc.exe中的所有选项。在创建了该文件以后,您就可以将它的名称指定为C#编译器的唯一选项。为了便于说明,下面提供了一个将用于生成 MyCodeLibrary.dll的响应文件(请注意,您可以使用#符号指定注释)。
# MyCodeLibraryArgs.rsp
# These are the options used
# to compile MyCodeLibrary.dll
# Output target and name.
/t:library
/out:MyCodeLibrary.dll
# Location of C# files.
/recurse:*.cs
# Give me an XML doc.
/doc:myDoc.xml
# Give me a strong name as well.
/keyfile:C:\MyKeyPair\myKeypair.snk
给定该文件以后,您现在就可以使用@选项指定MyCodeLibraryArgs.rsp了:
csc @MyCodeLibraryArgs.rsp
如果您愿意,则可以指定多个响应文件:
csc @MyCodeLibraryArgs.rsp @MoreArgs.rsp @EvenMoreArgs.rsp
请记住,按照遇到的顺序对响应文件进行处理。因此,以前的文件中的设置可能被以后的文件中的设置重写。
默认的响应文件和 /noconfig 选项
最后,请记住有一个默认的响应文件—csc.rsp,它由csc.exe在每次编译期间自动处理。如果您分析该文件(它与 csc.exe 本身位于相同的文件夹中)的内容,则您将只是发现一组经常引用的程序集(System.Windows.Forms.dll、System.Data.dll 等等)。
在您希望禁止包括csc.rsp的极少数的场合中,您可以指定/noconfig标志:
csc /noconfig @MyCodeLibraryArgs.rsp
注 如果您引用程序集,而实际上并不使用它,则它将不会在程序集清单中列出。因此,请不要担心代码膨胀问题,因为它们根本不存在。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者