Aller au contenu

[Résolu]compilation dynamique C#3.5 - prob de référence ...


Dude76

Messages recommandés

J'ai un problème dans ma méthode de compilation... (à l'exécution bien sûr...)

CodeDomProvider provider = new CSharpCodeProvider();
CompilerParameters cp = new CompilerParameters();

// Generate a class library.
cp.GenerateExecutable = false;
cp.GenerateInMemory = true;

// Generate debug information.
cp.IncludeDebugInformation = false;

cp.ReferencedAssemblies.Add("mscorlib.dll");
cp.ReferencedAssemblies.Add("System.dll");
cp.ReferencedAssemblies.Add("System.Core.dll");
cp.ReferencedAssemblies.Add("MyCustom.dll");

// should start displaying warnings.
cp.WarningLevel = 3;

// Set whether to treat all warnings as errors.
cp.TreatWarningsAsErrors = false;

// Set compiler argument to optimize output.
cp.CompilerOptions = "/optimize";

// Invoke compilation.
CompilerResults cr = provider.CompileAssemblyFromSource(cp, new string[] { source });

cr.Errors me dit:

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

J'ai essayé en pointant la dll avec son nom de chemin (C:Program FilesReference AssembliesMicrosoftFrameworkv3.5System.Core.dll), en faisant générer la dll en local, ... rien.

Je comprends pas ce qu'il attend ou ce qu'il faudrait que je fasse de plus...

Le code que j'essaie de compiler se compile bien dans un projet VS autonome avec seulement les dll nécessaires.

À noter qu'il m'a fallu faire un truc que j'aime pas: pour qu'il TROUVE mon fichier MyCustom.dll, il a fallu que je déclare dans mon code un objet de cette dll (juste une déclaration, pas la moindre utilisation...), et tout d'un coup, il m'a trouvé ma dll... ce que j'ai fini par résoudre en donnat le path complet de la dll (ouf! ). Mais là, pour System.Core.dll ça ne suffit pas.

HEEEEEELP :)

Lien à poster

J'ai fini par trouver !

ici : LukeH's WebLog

la seule ligne que j'ai changé dans mon code:

//CodeDomProvider provider = new CSharpCodeProvider();
CSharpCodeProvider provider = new CSharpCodeProvider(new Dictionary() { { "CompilerVersion", "v3.5" } });

et System.Core ne pose plus de problème ! o/ :-p

Après 3 jours acharnés de combats, ça fait du bien :p

Lien à poster
×
×
  • Créer...