none
DLL créé avec CodeDom inutilisable RRS feed

  • Question

  • 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):
    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*:
    using System;
    using System.Reflection;
    using System.Runtime.InteropServices;

    [assembly: AssemblyTitle("TestDLL")]
    [assembly: AssemblyDescription("")]
    [assembly: AssemblyConfiguration("")]
    [assembly: AssemblyCompany("")]
    [assembly: AssemblyProduct("TestDLL")]
    [assembly: AssemblyCopyright("Copyright © 2009")]
    [assembly: AssemblyTrademark("")]
    [assembly: AssemblyCulture("")]
    [assembly: ComVisible(false)]
    [assembly: Guid("7825f61a-bdb1-499c-a528-af3ecf072862")]

    [assembly: AssemblyVersion("3.5.0.0")]
    [assembly: AssemblyFileVersion("1.0.0.0")]

    namespace Program
    {
    public static class Prog
    {
    public static int ByTwo(int x)
    {
    return 3 * 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:
    public void CompileDLL(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 (3,5k au lieu de 4k) et fais planter mon app...

    Quelqu'un pourrait me dire ce que je fais faux?

    Merci d'avance :)
    mercredi 15 avril 2009 13:21

Réponses

Toutes les réponses