无法为CodeDom加载System.Data.Linq.dll

时间:2008-09-13 18:53:25

标签: c# codedom

我正在尝试使用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");

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

这可能是因为此程序集存储在与mscorlib不同的位置。如果您提供程序集的完整路径,它应该可以工作。获得完整路径最方便的方法是让.NET加载器为您完成工作。我会尝试这样的事情:

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

答案 1 :(得分:0)

这可能是一个愚蠢的答案,但您确定代码是在使用.NET Framework 3.5的计算机上运行的吗?