C#编译器:/ nostdlib选项

时间:2010-08-01 18:01:29

标签: c# .net mscorlib

编译时,如何才能将stdlib(mscorlib.dll)包含到我的C#应用​​程序中?据我所知,所有类都继承System.Object类,该类在mscorlib.dll中定义。更重要的是 - 诸如int之类的类型只是别名,例如对于System.Int32,它也在mscorlib中定义。这个选项曾经使用过吗?

4 个答案:

答案 0 :(得分:10)

是的,任何编译不与CLR桌面版本一起运行的程序的人都会使用它。与Silverlight一样,它的目标是.NETCore或Micro Framework。他们有自己的mscorlib.dll,当然定义了System.Object。

以下是Silverlight项目示例的编译器命令行:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Csc.exe /noconfig /nowarn:1701,1702 
/nostdlib+ /errorreport:prompt /warn:4 /define:DEBUG;TRACE;SILVERLIGHT
/reference:"c:\Program Files\Reference Assemblies\Microsoft\Framework\Silverlight\v4.0\mscorlib.dll" 
  etc...

答案 1 :(得分:3)

根据文档

http://msdn.microsoft.com/en-us/library/fa13yay7(VS.80).aspx

如果您尝试替换System类,则使用它。

答案 2 :(得分:1)

如果要构建以针对较旧的框架版本进行部署,您可能还希望使用它。 Visual Studio(15,无论如何)在构建您配置为以较旧框架版本为目标的项目时使用此选项。它不使用标准mscore,而是使用Reference Assemblies / Microsoft / Framework / vx.y

中的一个

答案 3 :(得分:0)

MSDN - “如果要定义或创建自己的系统命名空间和对象,请使用此选项。”足够公平 - 我不会很快这么做,所以。 :)