No se puede cargar System.Data.Linq.dll para CodeDom
Pregunta
Estoy tratando de dynamicaly compilar código usando CodeDom.Puedo cargar otras asambleas, pero no puedo cargar System.Data.Linq.dll.Me sale un error:
Archivo de metadatos 'System.Data.Linq.dll' no se pudo encontrar
Mi código es:
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");
Alguna idea?
Solución
Eso puede ser porque esta asamblea se almacena en una ubicación distinta a la mscorlib es.Se debe trabajar si usted proporciona una ruta de acceso completa a la asamblea.La forma más conveniente para obtener la ruta completa es dejar que el .NET cargador de hacer el trabajo por usted.Me gustaría intentar algo como esto:
compilerParams.ReferencedAssemblies.Add(typeof(DataContext).Assembly.Location);
Otros consejos
Esto puede ser un tonto respuesta, pero son usted seguro de que el código se está ejecutando en una máquina con .NET Framework 3.5?
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow