最近和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程序才可以