这怎么可能在编译时不将 stdlib (mscorlib.dll) 包含到我的 C# 应用程序中?据我所知,所有类都继承了 System.Object 类,该类定义在 mscorlib.dll 中。更重要的是 - 诸如 int 之类的类型只是别名,例如对于 System.Int32,它们也在 mscorlib 中定义。这个选项曾经被使用过吗?
最佳答案
是的,任何编译不使用 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...
关于C# 编译器 :/nostdlib option,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3383130/