Невозможно загрузить System.Data.Linq.dll для 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");
Есть идеи?
Решение
Возможно, это связано с тем, что эта сборка хранится в другом месте, чем mscorlib.Это должно работать, если вы укажете полный путь к сборке.Самый удобный способ получить полный путь — позволить загрузчику .NET сделать всю работу за вас.Я бы попробовал что-то вроде этого:
compilerParams.ReferencedAssemblies.Add(typeof(DataContext).Assembly.Location);
Другие советы
Возможно, это глупый ответ, но уверены ли вы, что код работает на машине с .NET Framework 3.5?
Не связан с StackOverflow