Компилятор C #: / nostdlib опция - PullRequest
7 голосов
/ 01 августа 2010

Как это возможно, чтобы не включать stdlib (mscorlib.dll) в мое приложение C # при компиляции? Насколько я знаю, все классы наследуют класс System.Object, который определен в mscorlib.dll. Более того, такие типы, как int, являются просто псевдонимами, например, для System.Int32, которые также определены в mscorlib. Эта опция когда-либо использовалась?

Ответы [ 4 ]

10 голосов
/ 01 августа 2010

Да, он используется любым, кто компилирует программу, которая не работает с версией 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...
3 голосов
/ 01 августа 2010

По документам

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

Вы используете его, если пытаетесь заменить системные классы.

1 голос
/ 19 января 2016

Вы также можете использовать его, если хотите построить для развертывания на более старой версии фреймворка. Visual Studio (в любом случае 15) использует этот параметр при создании проекта, настроенного для более старой версии платформы. Вместо использования стандартного mscore используется один из справочных сборок / Microsoft / Framework / vx.y

0 голосов
/ 01 августа 2010

С MSDN - «Используйте эту опцию, если вы хотите определить или создать свое собственное пространство имен и объектов системы». Справедливо, я не буду этого делать в ближайшее время, правда. :)

...