Co to jest Microsoft.csharp.dll w .NET 4.0?

Odpowiedzi:

193

Jest używany, gdy / jeśli używasz dynamicsłowa kluczowego w swoim projekcie. Zestaw zawiera spinacz środowiska uruchomieniowego C #.

Kompilator C # został zasadniczo wyodrębniony do biblioteki, dzięki czemu może emitować, kompilować i uruchamiać kod potrzebny do obsługi dynamicsłowa kluczowego. Przy pierwszym użyciu dynamicw kodzie ten zestaw (a także System.dll, System.Core.dll i System.Dynamic.dll) zostanie załadowany do domeny AppDomain.

adrianbanks
źródło
3
Czy zechciałbyś spekulować, dlaczego wybrali odwoływanie się do niego domyślnie? Czy wszyscy powinniśmy używać dynamicdużo więcej niż obecnie (tj. Nigdy)?
pon.
4
@mo jest podobne do tego, jak automatycznie dodają using System.Linq;do wszystkich plików. Po prostu sprawia, że ​​nowsze funkcje języka są nieco bardziej płynne. Jeśli chcesz go używać dynamic, po prostu działa bez wysiłku z Twojej strony.
Matt Greer,
16

Zawsze go usuwałam. Nie ma jeszcze żadnych problemów.

TomTom
źródło
13
Jeśli twój projekt nie używa dynamicznego słowa kluczowego, myślę, że możesz usunąć wiersz <Reference Include="Microsoft.CSharp" /> z pliku .csproj.
Cheeso
Dzięki TomTom i @Cheeso. Próbowałem zbudować plik .dll (Framework ustawiony na 3.5) do użytku z Unity i usunięcie go z pliku .csproj załatwiło sprawę.
Wolfram
4
Ta „odpowiedź” jest bardziej odpowiednia jako komentarz pod pytaniem. Chociaż sugeruje obejście, w rzeczywistości nie odpowiada na pytanie, do czego służy nowy zestaw.
toonice