Невозможно загрузить System.Data.Linq.dll для CodeDom.

StackOverflow https://stackoverflow.com/questions/60768

  •  09-06-2019
  •  | 
  •  

Вопрос

Я пытаюсь динамически скомпилировать код с помощью 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");

Есть идеи?

Это было полезно?

Решение

Возможно, это связано с тем, что эта сборка хранится в другом месте, чем mscorlib.Это должно работать, если вы укажете полный путь к сборке.Самый удобный способ получить полный путь — позволить загрузчику .NET сделать всю работу за вас.Я бы попробовал что-то вроде этого:

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

Другие советы

Возможно, это глупый ответ, но уверены ли вы, что код работает на машине с .NET Framework 3.5?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top