Что такое Microsoft.csharp.dll в .NET 4.0

Ответы:

193

Он используется, когда / если вы используете dynamicключевое слово в вашем проекте. Сборка содержит компоновщик времени выполнения C #.

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

adrianbanks
источник
3
Не могли бы вы поразмышлять о том, почему они решили ссылаться на него по умолчанию? Должны ли мы все использовать dynamicнамного больше, чем сейчас (то есть никогда)?
мес.
4
@mo это похоже на то, как они автоматически добавляются using System.Linq;ко всем файлам. Это делает новые языковые функции немного более плавными. Если вы хотите использовать dynamic, это просто работает без усилий с вашей стороны.
Мэтт Грир
16

Всегда удалял это до сих пор. Проблем пока нет.

TomTom
источник
13
Если ваш проект не использует динамическое ключевое слово, я думаю, это нормально, чтобы удалить строку, которая говорит <Reference Include="Microsoft.CSharp" /> в файле .csproj.
Cheeso
Спасибо TomTom и @Cheeso. Я пытался собрать .dll (Framework установлен на 3.5) для использования с Unity, и удаление его из файла .csproj добилось цели.
Вольфрам
4
Этот «ответ» более уместен в качестве комментария под вопросом. Хотя он предлагает обходной путь, он на самом деле не отвечает на вопрос о том, для чего предназначена новая сборка.
toonice