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?

¿Fue útil?

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
scroll top