CSC编译选项

最近和C#比较不对眼,为了省时间,减少打开VS等待的郁闷,多了解一些csc编译选项,应该会很有帮助:

使用默认方式,编译exe程序:

csc File.cs

对于单纯简单的exe程序,这种方式就足够了。但是C#程序,经常需要选择平台和生成目标,对应两个选项分别是 /plaform和/target

/platform:

anycpu

anycpu32bitpreferred  (这种模式只能使用在exe上,并且dotnet需要4.5版本)

x86

x64

ARM

Itanium

/target:

appcontainerexe  (对应Windows应用商店的exe应用)

exe

library 

module

winexe

winmdobj

另外还有两个比较有用的选项,/out,/unsafe ,/reference,/lib,/define

/out:filename

指定输出文件的名称filename

/unsafe

允许编译包含不安全关键字的项目,当程序中直接使用了native的dll,在编译时此选项是必须的

/reference:

指定要引用的文件名称,只能指定一个文件,如果有多个文件引用,请重复添加/reference选项

/warn:

指定编译器显示的告警等级

0 关闭所有警告消息的显示
1 显示严重的警告消息
2 显示等级 1 警告以及某些不太严重的警告,如关于隐藏类成员的警告
3 显示等级 2 警告以及某些不太严重的警告,例如有关总是计算为 true 或 false 的表达式的警告
4 (默认) 显示所有等级 3 警告以及信息性警告

/lib:dir1[,dir2]

指定reference引用文件所在的路径。多个文件请用逗号分开,不能带有空格

/define:name[,name2]

可以和程序里面的#if,#else,#elif,#endif等结合使用。在这里定义的name可以在全部源文件中使用;对于单个源文件中#undef取消定义之后,也不会影响其他源文件中的使用。

对于更详细的选项说明,请参见msdn:

https://msdn.microsoft.com/zh-cn/library/6s2x2bzy.aspx

最后补充一点,对于不同版本的dotnet程序,没有办法直接通过选项指定比如要编译出.net2.0或者.net3.5的版本,需要用C:\WINDOWS\Microsoft.NET\Framework下面对应版本的csc程序才可以

发表评论

电子邮件地址不会被公开。 必填项已用*标注