Bonjour,

J'ai récemment découvert CodeDom et la possibilité de générer des exécutables après avoir compiler son application. J'aimerais faire de même avec une dll mais mes dll ne sont pas utilisables et font planter mon application

Pour l'instant j'essaie avec une application tout simple.


L'application (qui utilise la dll):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
using System;
using Program;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            for (int i = 0; i < 10; i++)
                Console.WriteLine(Prog.ByTwo(i));
        }
    }
}

La DLL*:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
using System;
 
namespace Program
{
    public static class Prog
    {
        public static int ByTwo(int x)
        {
            return 2 * x;
        }
    }
}
*Compiler avec Visual Studio dans un premier temps mais que j'aimerais générer dynamiquement (et modifier donc) par la suite.


Le Compilateur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
public void CompileExecutable(string sourceString, string dllName)
{
  CSharpCodeProvider codeProvider = new CSharpCodeProvider();
  CompilerParameters parameters = new CompilerParameters();
  parameters.GenerateExecutable = false;
  parameters.GenerateInMemory = false;
  parameters.OutputAssembly = dllName;
  CompilerResults results =
    codeProvider.CompileAssemblyFromSource(parameters, sourceString);
}
Voila, si je compile ma dll avec Visual Studio je peux l'utiliser avec mon application, je peux même la modifier et l'application marche toujours. Mais lorsque j'essaie de compiler la dll avec mon "Compilateur" la dll créer est plus petit (3k au lieu de 4k) et fais planter mon app...

Merci d'avance