2012-04-30 11 views
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のが」見つかりませんでした。

ここで私は何をしていますか?

答えて

6

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

LINQはSystem.Core.dllに実装されています。あなたはこれを見ることができます。

名前空間::System.Linq

アセンブリ:System.Linq.EnumerableのドキュメントにSystem.CoreSystem.Core.dll中)

はあなたが参照する必要がアセンブリかを調べるために、ちょうど種類のドキュメントを参照します彼らがどのようなアセンブリを実装しているのか興味があります。 .NETライブラリの開発者は一貫性を重視しているため、名前空間は同じアセンブリ内に完全に実装されています(少なくともIには例外がありません)。

+1

'mscorlib.dll'には、多くの' System.Text'クラスが含まれています。 – Oded

+0

ユーザがLinqやSystem.IOのメソッドなどを使用できるようにしたい場合、他のどのアセンブリを読み込むべきですか? – Bohn

+0

@BDotA:回答を更新して、チェックアウトしました。 – Jon

関連する問題