1

CodeDom を使用してコードを動的にコンパイルしようとしています。他のアセンブリを読み込めますが、System.Data.Linq.dll を読み込めません。エラーが発生します:

メタデータ ファイル '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");

何か案は?

4

2 に答える 2

3

これは、このアセンブリが mscorlib とは別の場所に格納されていることが原因である可能性があります。アセンブリへのフル パスを指定すると機能するはずです。フル パスを取得する最も便利な方法は、.NET ローダーに作業を任せることです。私はこのようなことを試してみます:

compilerParams.ReferencedAssemblies.Add(typeof(DataContext).Assembly.Location);
于 2008-09-13T19:18:03.490 に答える
0

これはばかげた答えかもしれませんが、コードが .NET Framework 3.5 を搭載したマシンで実行されていることは確かですか?

于 2008-09-14T12:45:55.097 に答える