Question

J'essaie de compiler dynamiquement du code en utilisant CodeDom.Je peux charger d'autres assemblys, mais je ne peux pas charger System.Data.Linq.dll.J'obtiens une erreur :

Le fichier de métadonnées 'System.Data.Linq.dll' est introuvable

Mon code ressemble à :

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

Des idées?

Était-ce utile?

La solution

Cela peut être dû au fait que cet assembly est stocké dans un emplacement différent de celui de mscorlib.Cela devrait fonctionner si vous fournissez un chemin complet vers l’assembly.Le moyen le plus pratique d’obtenir le chemin complet est de laisser le chargeur .NET faire le travail à votre place.J'essaierais quelque chose comme ceci :

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

Autres conseils

C'est peut-être une réponse idiote, mais êtes-vous sûr que le code s'exécute sur une machine avec .NET Framework 3.5 ?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top