2010-03-17 3 views
151

Questa DLL viene aggiunta per impostazione predefinita nei progetti di Visual Studio 2010. A cosa serve questo nuovo gruppo? Non sembra che contenga molto dopo averlo guardato usando Reflector e Google non sembra avere molto da dire a riguardo.Che cos'è Microsoft.csharp.dll in .NET 4.0

risposta

174

Viene utilizzato quando/se si utilizza dynamic keyword nel progetto. L'assieme contiene il raccoglitore di runtime C#.

Il compilatore C# è stato essenzialmente estratto in una libreria in modo che possa emettere, compilare ed eseguire il codice necessario per supportare la parola chiave dynamic. La prima volta che si utilizza dynamic nel codice, questo assembly (oltre a System.dll, System.Core.dll e System.Dynamic.dll) verrà caricato nel tuo AppDomain.

+2

Vorresti speculare sul motivo per cui hanno scelto di fare riferimento ad esso per impostazione predefinita? Dovremmo tutti usare 'dynamic' molto più di quanto non lo siamo attualmente (cioè mai)? –

+4

@mo è simile a come aggiungono automaticamente 'usando System.Linq;' a tutti i file. Rende solo le nuove funzionalità linguistiche un po 'più semplici. Se vuoi usare 'dynamic', funziona senza alcuno sforzo da parte tua. –

12

Sempre rimosso fino ad ora. Nessun problema ancora.

+13

Se il progetto non utilizza la parola chiave dinamica, suppongo che sia corretto rimuovere la riga che dice '' nel file .csproj. – Cheeso

+0

Grazie TomTom e @Cheeso. Stavo cercando di creare un file .dll (Framework impostato su 3.5) da utilizzare con Unity e rimuoverlo dal file .csproj ha funzionato. – Wolfram

+0

Questa "risposta" è più appropriata come commento sotto la domanda. Mentre suggerisce una soluzione alternativa, in realtà non risponde alla domanda su che cosa è il nuovo assembly. – toonice