Come è possibile non includere stdlib (mscorlib.dll) nella mia applicazione C# durante la sua compilazione? Per quanto ne so, tutte le classi ereditano la classe System.Object, che è definita in mscorlib.dll. Inoltre, tipi come int sono solo alias, ad es. per System.Int32, che sono anche definiti in mscorlib. Questa opzione è mai stata utilizzata?Compilatore C#: opzione/nostdlib
risposta
Sì, viene utilizzato da chiunque compili un programma che non viene eseguito con la versione desktop del CLR. Come Silverlight, si rivolge a .NETCore o al Micro Framework. Hanno il loro mscorlib.dll, ovviamente con System.Object definito.
Ecco la linea di comando del compilatore di un progetto di esempio 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...
Secondo la documentazione
http://msdn.microsoft.com/en-us/library/fa13yay7(VS.80).aspx
lo si utilizza, se si sta cercando di sostituire le classi di sistema.
Da MSDN - "Utilizzare questa opzione se si desidera definire o creare il proprio spazio dei nomi e oggetti System.". Giusto abbastanza - non lo farò presto, comunque! :)
Lo farò) http://lightnet.codeplex.com/ –
Si consiglia inoltre di utilizzare se si vuole costruire a schierare contro una versione più vecchia quadro. Visual Studio (15, ad ogni modo) usa questa opzione quando costruisce un progetto che hai configurato per scegliere come target una versione di framework precedente. Invece di usare lo standard mscore, ne usa uno da Reference Assembly/Microsoft/Framework/vx.y
- 1. Compilatore PIC C gratuito
- 2. Compilatore PIC16 C
- 3. compilatore C# Enhancement Suggerimento
- 4. Compilatore C standard attuale?
- 5. C compilatore ??) sostituzione
- 6. C Errore # compilatore CS0433
- 7. Come determinare quale compilatore C/C++ usare?
- 8. Il compilatore C# era scritto in C++?
- 9. Compilatore C/C++ che genera codice offuscato
- 10. cos'è un buon compilatore c
- 11. C per avviare il compilatore?
- 12. static_assert e Intel C++ compilatore
- 13. Errore del compilatore C++ ambiguo
- 14. Nessun compilatore C su EC2?
- 15. C++ frontend solo compilatore (convertito da C++ a C)
- 16. Nessun compilatore C accettabile trovato in $ PATH durante l'installazione del compilatore C
- 17. La differenza tra il compilatore Mono C# e il compilatore MS C# rispetto all'ambito
- 18. C++ differenze compilatore (VS2008 e g ++)
- 19. Visual C++ opzioni di default del compilatore
- 20. Ritorno alle origini - C# Errore del compilatore
- 21. Come utilizzare il compilatore Visual Studio C++?
- 22. Come le stringhe concat compilatore C#
- 23. Specificare il compilatore C++ in waf
- 24. Compilatore Intel C++ in alternativa a Microsoft?
- 25. -isistema per compilatore MS Visual Studio C++
- 26. Selezione del compilatore C nel pacchetto cabal
- 27. Building Boost con compilatore C++ LSB
- 28. soluzione Java per C++ direttiva stile compilatore
- 29. Compilatore 64 bit C per Windows 7
- 30. Come scrivere un semplice compilatore in C/++?
Non è ancora chiaro per me. La mia versione di System.Object è accettabile? Non credo che il CLR lo permetterebbe. Sia System.Object che System.ValueType sono classi speciali che indicano anche se la mia variabile è di tipo di riferimento o di valore. –
@MarcAndreson: A quanto ho capito, lo switch del compilatore '/ nostdlib' non comporterà necessariamente un assembly che CLR (.NET Framework) può eseguire. Ma produce un assembly valido che potrebbe essere eseguibile su una diversa piattaforma compatibile con CLI (come Mono, Silverlight o la tua). Data questa funzione, puoi avere un compilatore C# per ognuna di queste piattaforme. Se il compilatore C# di ogni modello è sempre legato in modo incondizionato al codice specifico per il proprio 'mscorlib.dll', è necessario un compilatore per piattaforma. Quindi '/ nostdlib' (in teoria) rende il compilatore riutilizzabile attraverso le piattaforme. – stakx