2

CSharpCodeProvider クラスを .NET 3.5 を使用するように設定すると、特定の参照 DLL を読み込もうとするとエラーが発生します。

Line number 0, Error Number: CS0006, 'Metadata file 'System.Linq.dll' could not be found;
Line number 0, Error Number: CS0006, 'Metadata file 'System.Collections.dll' could not be found;

問題は、2.0 に設定すると動作しますが、LINQ を使用できないことです。

現在、他のスレッドには、DLL が適切な場所にないためであるという解決策があり、次のような解決策を提供しています。

typeof(System.Xml.Linq.Extensions).Assembly.Location

Linq の場所を取得するには、プログラムの動作方法が原因で、どの DLL をロードする必要があるかわかりません。ユーザーは外部ライブラリの場所を入力する必要があるため、これは問題ではありませんが、システム dll の場合は、または だけで場所を取得できます"System.Linq""System.Collections"?

4

1 に答える 1

6

System.Collections.dllまたははわかりませんSystem.Linq.dll。ほとんどの LINQ は にSystem.Core.dllあり、コレクションはmscorlibおよびSystem.dllIIRC にあります。名前空間アセンブリを区別する必要があります。(usingディレクティブを使用して名前空間をインポートし、プロジェクト内のアセンブリへの参照を追加します。)

どのクラスに興味がありますか? MSDN でそれらを調べて、どのアセンブリに含まれているかを確認してください。

于 2012-06-01T12:33:54.783 に答える