2008-09-13 4 views
1

私はCodeDomを使用して動的にコードをコンパイルしようとしています。他のアセンブリを読み込むことはできますが、System.Data.Linq.dllを読み込むことはできません。CodeDomのSystem.Data.Linq.dllを読み込めません

CompilerParameters compilerParams = new CompilerParameters(); 
compilerParams.CompilerOptions = "/target:library /optimize"; 
compilerParams.GenerateExecutable = false; 
compilerParams.GenerateInMemory = true; 
compilerParams.IncludeDebugInformation = false; 
compilerParams.ReferencedAssemblies.Add("mscorlib.dll"); 
compilerParams.ReferencedAssemblies.Add("System.dll"); 
compilerParams.ReferencedAssemblies.Add("System.Data.Linq.dll"); 

任意のアイデア:私はエラーを取得する:

私のコードは次のようになり

メタデータファイルを 'System.Data.Linq.dll' が見つかりませんでしたか?

+1

編集依頼:タイトルを修正してください。 –

答えて

3

これは、このアセンブリがmscorlibとは異なる場所に格納されている可能性があります。アセンブリへのフルパスを提供する場合は、これが有効です。完全なパスを取得する最も便利な方法は、.NETローダーがあなたのために仕事をすることです。

compilerParams.ReferencedAssemblies.Add(typeof(DataContext).Assembly.Location); 
0

これは愚かな回答かもしれませんが、コードが.NET Framework 3.5のマシンで実行されていることは確かですか?

+0

彼は確信しています。私はまったく同じエラーが発生しており、.NET 3.5と.NET 4.の両方があります:) –