2008-09-13 11 views
1

Ich versuche Code mit CodeDom dynamisch zu kompilieren. Ich kann andere Assemblys laden, aber ich kann System.Data.Linq.dll nicht laden. Ich erhalte eine Fehlermeldung:Kann System.Data.Linq.dll für CodeDom nicht laden

Metadaten Datei 'System.Data.Linq.dll' konnte nicht

Mein Code sieht aus wie zu finden:

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"); 

Irgendwelche Ideen?

+1

Edit Anfrage: Bitte korrigieren Sie den Titel. –

Antwort

3

Das kann sein, weil diese Assembly an einem anderen Speicherort als mscorlib gespeichert ist. Es sollte funktionieren, wenn Sie der Assembly einen vollständigen Pfad angeben. Die einfachste Möglichkeit, den vollständigen Pfad zu erhalten, besteht darin, den .NET-Loader für sich arbeiten zu lassen. Ich würde versuchen, etwas wie folgt:

0

Dies kann eine dumme Antwort sein, aber sind Sie sicher, dass der Code auf einer Maschine mit .NET Framework 3.5 ausgeführt wird?

+0

Ich bin sicher, er ist. Ich habe genau den gleichen Fehler und ich habe sowohl .NET 3.5 als auch .NET 4. :) –