如何使用C#命令行文档格式.docx
- 文档编号:20094043
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:20
- 大小:26.23KB
如何使用C#命令行文档格式.docx
《如何使用C#命令行文档格式.docx》由会员分享,可在线阅读,更多相关《如何使用C#命令行文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
启用源代码文件的增量编译。
/lib
指定通过/reference引用的程序集的位置。
/linkresource
创建指向托管资源的链接。
/main
指定Main方法的位置。
/noconfig
不要使用csc.rsp进行编译。
/nologo
取消显示编译器版权标志信息。
/nostdlib
不导入标准库(mscorlib.dll)。
/nowarn
禁用编译器生成指定警告的能力。
/optimize
启用/禁用优化。
/out
指定输出文件。
/recurse
搜索子目录中要编译的源文件。
/reference
从包含程序集的文件中导入元数据。
/resource
将.NETFramework资源嵌入到输出文件中。
/target
使用下面的四个选项之一指定输出文件的格式:
/target:
exe
library
module
winexe
/unsafe
编译使用unsafe关键字的代码。
/utf8output
使用UTF-8编码显示编译器输出。
/warn
设置警告等级。
/warnaserror
将警告提升为错误。
/win32icon
将.ico文件插入到输出文件中。
/win32res
将Win32资源插入到输出文件中。
第二部分:
命令的具体说明。
一@:
指定响应文件
@response_file
其中:
response_file
一个列出编译器选项或要编译的源代码文件的文件。
备注
@选项使您可以指定包含编译器选项和要编译的源代码文件的文件。
编译器将对这些编译器选项和源代码文件进行处理,就像已在命令行上指定了它们一样。
若要在一次编译中指定多个响应文件,请指定多个响应文件选项。
例如:
@file1.rsp@file2.rsp
在响应文件中,多个编译器选项和源代码文件可以出现在同一行中。
单个编译器选项的指定必须出现在同一行中(不能跨行)。
响应文件可以带有以#符号开始的注释。
示例
以下几行来自一个示例响应文件:
#buildthefirstoutputfile
/target:
exe/out:
MyExe.exesource1.cssource2.cs
二/?
列出编译器选项到stdout
该选项将编译器选项的列表和每个选项的简短说明发送到stdout。
如果编译中包含该选项,将不会创建输出文件,也不会进行编译。
三/addmodule指定一个或多个模块作为此程序集的一部分
/addmodule:
file[;
file2]
file,file2
包含元数据的输出文件。
该文件不能包含程序集清单。
若要导入多个文件,请用逗号或分号分隔文件名。
运行时,所有用/addmodule添加的模块必须与输出文件在同一目录中。
也就是说,编译时可以在任何目录中指定模块,但是在运行时模块必须在应用程序目录中。
如果在运行时模块不在应用程序目录中,则将得到System.TypeLoadException。
file不能包含程序集。
例如,如果输出文件用/target:
module创建,则其元数据可以用/addmodule导入。
如果输出文件用/target选项而不是/target:
module创建,则其元数据无法用/addmodule导入,但是可以用/reference导入。
编译源文件input.cs并从module和module中添加元数据来产生out.exe:
csc/addmodule:
module;
module/out:
out.exeinput.cs
四/baseaddress
指定加载DLL的首选基址
/baseaddress:
address
address
DLL的基址。
可以将该地址指定为十进制、十六进制或八进制数。
/baseaddress选项使您可以指定加载DLL的首选基址。
DLL的默认基址由.NETFramework公共语言运行库设置。
请注意:
该地址中低位的数将会被舍入。
例如,如果指定0x11110001,它将被舍入为0x11110000。
若要完成DLL的签名进程,请使用SN.EXE的-R选项。
五/bugreport
创建一个包含信息(该信息便于报告错误)的文件
/bugreport:
file
file
要包含错误报告的文件的名称。
/bugreport选项将使下列信息放在file中:
编译中所有源代码文件的副本。
编译中使用的编译器选项列表。
有关编译器、运行库和操作系统的版本信息。
引用的程序集和模块(保存为十六进制数),.NETFrameworkSDK附带的程序集除外。
编译器输出(如果有)。
将会提示给您的问题的说明。
关于考虑问题应如何解决(就此将会向您提示)的说明。
编译t2.cs,并将所有错误报告信息放置在文件problem.txt中:
csc/bugreport:
problem.txtt2.cs
六/checked
指定溢出数据类型边界的整数算法是否将在运行时导致异常
/checked[+|-]
/checked选项指定不在checked或unchecked关键字范围内的整数算法语句,以及产生的值超出数据类型范围的整数算法语句是否导致运行时异常。
checked或unchecked关键字范围内的整数算法语句不受/checked选项的影响。
如果不在checked或unchecked关键字范围内的整数算法语句产生的值超出数据类型范围,并且编译中使用了/checked+(/checked),则该语句将在运行时导致异常。
如果编译中使用的是/checked-,则该语句不在运行时导致异常。
编译t2.cs,并指定不在checked或unchecked关键字范围内并且产生的值超出数据类型范围的整数算法语句将在运行时导致异常。
csct2.cs/checked
七/codepage指定编译中的所有源代码文件所使用的代码页
/codepage:
id
id
编译中用于所有源代码文件的代码页的ID。
如果编译的一个或多个源代码文件没有被创建为使用计算机上的默认代码页,则可以使用/codepage选项指定应使用的代码页。
/codepage适用于编译中的所有源代码文件。
如果源代码文件是用计算机中的同一有效代码页创建的,或者是用UNICODE或UTF-8创建的,则不需要使用/codepage。
八/debug发出调试信息
/debug[+|-]
/debug:
{full|pdbonly}
+|-
指定“+”或只指定/debug将使编译器生成调试信息,并将这些信息放置在一个程序数据库(.pdb文件)中。
指定“-”(在不指定/debug时有效)则导致不创建调试信息。
full|pdbonly
指定编译器生成的调试信息类型。
full参数在没有指定/debug:
pdbonly时有效,它允许将调试器附加到正在运行的程序。
指定pdbonly允许在调试器中启动程序时进行源代码调试,但仅在正在运行的程序附加到调试器时才显示汇编程序。
/debug选项使编译器生成调试信息并将其放置在输出文件中。
使用该选项创建调试版本。
如果未指定/debug、/debug+或/debug:
full,则不能调试程序的输出文件。
将调试信息放置在输出文件app.exe中:
csc/debug/out:
app.exetest.cs
九/define定义预处理器符号
/define:
name[;
name2]
name,name2
要定义的一个或多个符号的名称。
/define选项将name定义为程序中的符号。
它与在源文件中使用#define预处理器指令的效果相同。
符号一直保持定义到源文件中的#undef指令移除定义,或者编译器执行到文件尾。
可以将用该选项创建的符号与#if、#else、#elif和#endif一起使用,以按条件编译源文件。
/d是/define的缩写形式。
通过使用分号或逗号分隔符号名称,可以使用/define定义多个符号。
DEBUG;
TUESDAY
//preprocessor_define.cs
//compilewith:
/define:
xx
//oruncommentthenextline
//#definexx
usingSystem;
publicclassTest
{
publicstaticvoidMain()
{
#if(xx)
Console.WriteLine("
xxexists"
);
#else
xxdoesnotexist"
#endif
}
}
十/doc处理XML文件的文档注释
/doc:
XML的输出文件,由编译的源代码文件中的注释填充。
/doc选项允许将文档注释放置在XML文件中。
对于VisualStudio.NET,只有C#编译器提供此文档注释功能。
在源代码文件中,可处理以下内容之前的文档注释,并将其添加到XML文件中:
用户定义的类型,如class、delegate或interface
成员,如字段、事件、属性或方法
包含Main的源代码文件首先输出到XML。
若要将生成的.xml文件用于智能感知功能,请使该.xml文件的文件名与要支持的程序集同名,然后确保该.xml文件放入与该程序集相同的目录中。
这样,在VisualStudio项目中引用程序集时,也可找到该.xml文件。
在使用/incremental的编译中将忽略/doc;
使用/incremental-以确保file是最新的。
除非用/target:
module进行编译,否则file将包含<
assembly>
<
/assembly>
标记,以指定包含编译输出文件的程序集清单的文件名。
十一/filealign指定输出文件中节的大小
/filealign:
number
number
指定输出文件中节大小的值。
有效值为512、1024、2048、4096和8192。
这些值以字节为单位。
/filealign选项使您可以指定输出文件中的节大小。
每个节将在是/filealign值的倍数的边界上对齐。
没有固定的默认值。
如果未指定/filealign,则公共语言运行库在编译时将选取一个默认值。
通过指定节的大小,可以影响输出文件的大小。
修改节的大小可能对将在较小设备上运行的程序有用。
十二/fullpaths
指定编译器输出中的文件的绝对路径
/fullpaths
默认情况下,编译所产生的错误和警告指定包含错误的文件名。
/fullpaths选项使编译器指定文件的完整路径。
十三/help
/help
十四/incremental
启用源代码文件的增量编译
/incremental[+|-]
/incremental编译器选项启用增量编译器,增量编译器仅编译自上次编译后更改的那些方法。
先前编译的状态信息存储在由编译器创建的下列文件中:
output_file_name.dbg
使用/debug进行编译时,调试信息的状态存储在程序数据库(.pdb文件)中。
output_file_name.extension.incr
编译状态信息(调试信息除外)存储在.incr文件中。
首次使用/incremental时,.incr和.pdb文件将更新,并且后面的所有编译都将是增量的。
更改以前/incremental编译的编译器选项将导致完全重新生成.incr和.pdb文件。
如果编译器检测到自上次增量编译后有许多更改,它可能执行完全生成,因为完全生成至少与增量编译一样有效。
如果编译器无法找到项目的.pdb或.incr文件,则将发生完全重新生成。
在增量编译中,将忽略/doc。
若要确保文档文件是最新的,请用/incremental-生成。
默认情况下,/incremental-有效。
指定/incremental与指定/incremental+相同。
用/incremental选项创建的输出文件可能比禁用增量编译时创建的输出文件大。
由于输出文件会较大,在最后的输出文件生成中应使用/incremental-。
/incremental可提高包含许多小文件的项目的编译速度,而对包含有少量大文件的项目,在速度上只有很少或没有提高。
使用增量编译器编译in.cs:
csc/incrementalin.cs
十五/lib指定通过/reference引用的程序集的位置
/lib:
dir1[,dir2]
dir1
在当前工作目录(调用编译器的目录)或公共语言运行库的系统目录中未找到引用的程序集时,编译器将在其中进行查找的目录。
dir2
要在其中搜索程序集引用的一个或多个附加目录。
用分号分隔附加的目录名。
/lib选项指定通过/reference选项引用的程序集的位置。
编译器按以下顺序搜索未完全限定的程序集引用:
当前工作目录。
该目录为从其调用编译器的目录。
公共语言运行库系统目录。
由/lib指定的目录。
由LIB环境变量指定的目录。
使用/reference指定程序集引用。
/lib是累加的;
多次指定它可将新的指定追加到任何先前指定的值上。
另一种使用/lib的方法是将任何所需的程序集复制到工作目录;
这使您得以仅将程序集名称传递给/reference。
然后可以从工作目录中删除这些程序集。
由于程序集清单中未指定依赖程序集的路径,因此应用程序可以在目标计算机上启动,然后查找并使用全局程序集缓存中的程序集。
编译t2.cs以创建.exe文件。
编译器将在工作目录和驱动器C上根目录中查找程序集引用。
csc/lib:
c:
\/reference:
t2.dllt2.cs
十六/linkresource创建指向托管资源的链接
/linkresource:
filename[,identifier]
filename
要从程序集链接的.NETFramework资源文件。
identifier(可选)
资源的逻辑名称;
用于加载此资源的名称。
默认为文件的名称。
/linkresource选项在输出文件中创建指向.NETFramework资源的链接;
资源文件不放在输出文件中。
/resource在输出文件中嵌入资源文件。
当链接的资源是用C#编译器创建的时,它在程序集中是公共的。
/linkresource需要除/target:
module选项之外的/target选项之一。
例如,如果filename是通过Resgen.exe或在开发环境中创建的.NETFramework资源文件,则可以用System.Resources命名空间中的成员访问它(有关更多信息,请参见System.Resources.ResourceManager)。
对于所有其它资源,使用System.Reflection.Assembly类中的GetManifestResource*方法在运行时访问资源。
在filename中指定的文件可以为任何格式。
例如,您可能会将本机DLL设置成程序集的一部分,这样,它就可以安装进全局程序集缓存,并可以由该程序集中的托管代码访问。
/linkres是/linkresource的缩写形式。
编译in.cs并链接到资源文件rf.resource:
csc/linkresource:
rf.resourcein.cs
十七/main
指定Main方法的位置
/main:
class
class
包含Main方法的类型。
如果编译包括多个具有Main方法的类型,可以指定哪个类型包含要用作程序入口点的Main方法。
此选项用在编译.exe文件时。
编译t2.cs和t3.cs,并指定将在Test2中找到Main方法:
csct2.cst3.cs/main:
Test2
十八/noconfig不要使用csc.rsp进行编译
/noconfig
/noconfig选项通知编译器不要使用csc.rsp文件进行编译,该文件与csc.exe文件位于同一目录中,并从该目录中加载。
csc.rsp文件引用.NETFramework附带的所有程序集。
VisualStudio.NET开发环境包括的实际引用具体取决于项目类型。
可以修改csc.rsp文件并指定其它编译器选项,而这些选项是那些应该包括在使用csc.exe的来自命令行的每次编译中的选项(/noconfig选项除外)。
编译器会保留上次传递给csc命令的选项。
因此,命令行上的任何选项都会重写csc.rsp文件中同一选项的设置。
如果不希望编译器查找并使用csc.rsp文件中的设置,请指定/noconfig。
十九/nologo
取消显示编译器版权标志信息
/nologo
/nologo选项在编译器启动时取消显示登录版权标志,并在编译期间取消显示信息性消息。
此选项在开发环境中不可用;
它仅在从命令行编译时才可用。
二十/nostdlib不导入标准库(mscorlib.dll)
/nostdlib[+|-]
/nostdlib选项禁止导入定义整个System命名空间的mscorlib.dll。
如果您希望定义或创建自己的System命名空间和对象,请使用该选项。
如果不指定/nostdlib,mscorlib.dll将导入程序(与指定/nostdlib-相同)。
如果指定/nostdlib,则与指定/nostdlib+相同。
二十一/nowarn
禁用编译器生成指定警告的能力
/nowarn:
number1[,number2[...]]
number1,number2
希望编译器取消的警告编号。
/nowarn选项使您可以取消编译器生成一个或多个警告的能力。
用逗号分隔多个警告编号。
仅需要指定警告标识符的数值部分。
例如,若要取消CS0028,可以指定/nowarn:
28。
编译器在无人参与的模式下忽略传递给/nowarn的警告编号,这些警告编号在先前版
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 如何 使用 C# 命令行