tags:

views:

91

answers:

3

How is this possible not to include stdlib (mscorlib.dll) to my C# application when compiling it? As far as I know, all classes inherit System.Object class, which is defined in mscorlib.dll. What is more - types such as int are just aliases e.g. for System.Int32, which are also defined in mscorlib. Is this option ever used?

+2  A: 

According to the docs

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

You use it if you are trying to replace the System classes.

Lou Franco
It is still not clear to me. Is using my own version of System.Object acceptable? I don't think CLR would allow that. Both System.Object and System.ValueType are special classes that also indicate whether my variable is of reference type or value type.
MarcAndreson
A: 

From MSDN - "Use this option if you want to define or create your own System namespace and objects.". Fair enough - I won't be doing that any time soon, tho'. :)

Will A
I will ) http://lightnet.codeplex.com/
Koistya Navin
+4  A: 

Yes, it is used by anybody that compiles a program that doesn't run with the desktop version of the CLR. Like Silverlight or the Micro Framework. They have their own mscorlib.dll, of course with System.Object defined.

Here's the compiler command line of a sample Silverlight project:

  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...
Hans Passant