0

コードで:

 CompilerParameters parameters = new CompilerParameters();
 parameters.ReferencedAssemblies.Add("System.dll");
 parameters.ReferencedAssemblies.Add("System.Windows.Forms.dll");

これまでのところ、問題なく動作し、指定したコードを実行できますが、これらのアセンブリを追加すると:

    //parameters.ReferencedAssemblies.Add("System.Text.dll");
    //parameters.ReferencedAssemblies.Add("System.Linq.dll");

実行時に次のようなエラーが表示されます。

メタデータ ファイル "System.Text" が見つかりませんでした。

それで、私はここで何を間違っていますか?

4

1 に答える 1

6

アセンブリSystem.Textはありません。と呼ばれる名前空間がありますが、それはまったく別のものです。System.Linq

LINQ は に実装されていSystem.Core.dllます。たとえば、次のドキュメントでこれを確認できますSystem.Linq.Enumerable

名前空間:System.Linq

アセンブリ: System.Core(でSystem.Core.dll)

参照する必要があるアセンブリを見つけるには、関心のある型のドキュメントを参照し、どのアセンブリがそれらを実装しているかを確認してください。.NET ライブラリの開発者は一貫性を重視するため、名前空間が全体として同じアセンブリに実装されていることがわかります (少なくともは例外を知りません)。

于 2012-04-30T14:49:51.990 に答える