.NET 4.0のMicrosoft.csharp.dllとは


164

このDLLは、Visual Studio 2010プロジェクトにデフォルトで追加されます。この新しいアセンブリは何に使用されますか?Reflectorを使用して見たところ、あまり含まれていないようで、Googleもそれについて何も言っているようには見えません。


回答:


193

プロジェクトでdynamicキーワードを使用する場合に使用します。アセンブリには、C#ランタイムバインダーが含まれています。

C#コンパイラは基本的にライブラリに抽出されているため、dynamicキーワードをサポートするために必要なコードを発行、コンパイル、および実行できます。dynamicコードで初めて使用するとき、このアセンブリ(およびSystem.dll、System.Core.dll、System.Dynamic.dll)はAppDomainに読み込まれます。


3
彼らがデフォルトでそれを参照することを選んだ理由を推測してみませんか?私たち全員がdynamic現在使用しているよりも多く使用する必要がありますか(つまり、使用しない)?
mo。

4
@moは、自動的using System.Linq;にすべてのファイルに追加する方法に似ています。新しい言語機能が少しシームレスになるだけです。を使用したい場合dynamic、それはあなたの側で努力なしで動作します。
Matt Greer

16

これまでは常にそれを削除しました。まだ問題はありません。


13
プロジェクトで動的キーワードが使用されていない場合は<Reference Include="Microsoft.CSharp" /> 、.csprojファイルにある行を削除してもかまいません。
Cheeso

TomTomと@Cheesoに感謝します。Unityで使用する.dll(フレームワークを3.5に設定)をビルドしようとしていましたが、.csprojファイルからそれを削除するとうまくいきました。
Wolfram、

4
この「回答」は、質問の下のコメントとしてより適切です。回避策を提案しますが、新しいアセンブリの目的に関する質問には実際には回答しません。
toonice 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.