Що таке Microsoft.csharp.dll у .NET 4.0


164

Ця DLL додана за замовчуванням у проектах Visual Studio 2010. Для чого використовується ця нова збірка? Схоже, він не містить багато після того, як дивився на нього за допомогою Reflector, і Google, здається, також не має про це багато сказати.


Відповіді:


193

Він використовується, коли / якщо ви використовуєте dynamicключове слово у своєму проекті. Збірка містить в'яжуче середовище виконання C #.

Компілятор C # по суті був витягнутий з бібліотеки, щоб він міг випускати, компілювати та запускати код, необхідний для підтримки dynamicключового слова. При першому використанні dynamicкоду ця збірка (а також System.dll, System.Core.dll і System.Dynamic.dll) завантажується у ваш AppDomain.


3
Чи хотіли б ви міркувати, чому вони вибрали посилання за замовчуванням? Чи всі ми повинні використовувати dynamicнабагато більше, ніж зараз (тобто ніколи)?
мо.

4
@mo це схоже на те, як вони автоматично додають using System.Linq;до всіх файлів. Це просто робить новіші функції мови трохи більш безпроблемними. Якщо ви хочете використовувати dynamic, це просто працює, не докладаючи зусиль з вашого боку.
Метт Грір

16

Завжди знімайте його поки що. Випусків ще немає.


13
Якщо ваш проект не використовує динамічне ключове слово, я вважаю, що добре видалити рядок <Reference Include="Microsoft.CSharp" /> із файлу .csproj.
Чесо

Дякую TomTom та @Cheeso. Я намагався створити .dll (Framework встановлений на 3.5) для використання з Unity, і видаливши його з .csproj-файла зробив свою справу.
Вольфрам

4
Ця "відповідь" більш доречна як коментар під питанням. Незважаючи на те, що це пропонує вирішити питання, він насправді не відповідає на питання, для чого призначена нова асамблея.
тоніце
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.