Was ist Microsoft.csharp.dll in .NET 4.0?

Antworten:

193

Es wird verwendet, wenn Sie das dynamicSchlüsselwort in Ihrem Projekt verwenden. Die Assembly enthält den C # -Runtime-Ordner.

Der C # -Compiler wurde im Wesentlichen in eine Bibliothek extrahiert, damit er Code ausgeben, kompilieren und ausführen kann, der zur Unterstützung des dynamicSchlüsselworts erforderlich ist . Bei der ersten Verwendung dynamicin Ihrem Code wird diese Assembly (sowie System.dll, System.Core.dll und System.Dynamic.dll) in Ihre AppDomain geladen.

adrianbanks
quelle
3
Möchten Sie darüber spekulieren, warum sie standardmäßig darauf verweisen? Sollten wir alle dynamicviel mehr verwenden als derzeit (dh niemals)?
mo.
4
@mo ist ähnlich wie sie automatisch using System.Linq;zu allen Dateien hinzufügen . Dadurch werden die neueren Sprachfunktionen nur ein wenig nahtloser. Wenn Sie verwenden möchten dynamic, funktioniert es einfach ohne Ihr Zutun.
Matt Greer
16

Immer so weit entfernt. Noch keine Probleme.

TomTom
quelle
13
Wenn Ihr Projekt das dynamische Schlüsselwort nicht verwendet, ist es <Reference Include="Microsoft.CSharp" /> wahrscheinlich in Ordnung , die Zeile in der .csproj-Datei zu entfernen .
Cheeso
Vielen Dank an TomTom und @Cheeso. Ich habe versucht, eine DLL (Framework auf 3.5 gesetzt) ​​für Unity zu erstellen, und das Entfernen aus der .csproj-Datei hat den Trick getan.
Wolfram
4
Diese "Antwort" ist besser als Kommentar unter der Frage geeignet. Es schlägt zwar eine Problemumgehung vor, beantwortet jedoch nicht die Frage, wozu die neue Baugruppe dient.
Toonice