Bonjour,


Je suis le tutorial suivant afin d'ajouter à mon EXE toute les DLL de mon projet
http://www.digitallycreated.net/Blog...pf-application


J'ai, à la racine de mon EXE, un dossier nommée "Resources" qui contient 4 DLL perso, toutes avec une "Action de génération : Resource".

Je compile le tout sans problème mais lorsque j'utilise ILSpy pour voir ce que contient mon EXE je ne retrouve pas l'une de mes DLL (nommée "Tagomatique.DA.dll") ce qui génére des erreurs lors de la phase de résolution d'assembly.

Voici le code utilisée pour la résolution d'assemble (celui du tuto + génération de trace)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
private static Assembly OnResolveAssembly(object sender, ResolveEventArgs args)
{
    Assembly executingAssembly = Assembly.GetExecutingAssembly();
    AssemblyName assemblyName = new AssemblyName(args.Name);
 
    string path = assemblyName.Name + ".dll";
    if (assemblyName.CultureInfo.Equals(CultureInfo.InvariantCulture) == false)
    {
        path = String.Format(@"{0}\{1}", assemblyName.CultureInfo, path);
    }
 
    File.AppendAllText(@"C:\log.tago.txt", Environment.NewLine);
    File.AppendAllText(@"C:\log.tago.txt", Environment.NewLine + "Args.Name = " + args.Name);
    File.AppendAllText(@"C:\log.tago.txt", Environment.NewLine + "AssemblyName = " + assemblyName);
    File.AppendAllText(@"C:\log.tago.txt", Environment.NewLine + "AssemblyName.CultureInfo = " + assemblyName.CultureInfo.DisplayName);
    File.AppendAllText(@"C:\log.tago.txt", Environment.NewLine + "Path = " + path);
 
    using (Stream stream = executingAssembly.GetManifestResourceStream(path))
    {
        if (stream == null)
        {
            File.AppendAllText(@"C:\log.tago.txt", Environment.NewLine + "Resultat = INTROUVABLE");
            return null;
        }
        else
        {
            File.AppendAllText(@"C:\log.tago.txt", Environment.NewLine + "Resultat = OK");
        }
 
        byte[] assemblyRawBytes = new byte[stream.Length];
        stream.Read(assemblyRawBytes, 0, assemblyRawBytes.Length);
        return Assembly.Load(assemblyRawBytes);
    }
}

Extrait du fichier de trace en rapport avec la DLL manquante:
Args.Name = Tagomatique.DA, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
AssemblyName = Tagomatique.DA, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
AssemblyName.CultureInfo = Langue indifférente (Pays indifférent)
Path = Tagomatique.DA.dll
Resultat = INTROUVABLE

Ce qui me surprend c'est que mes 3 autres DLL sont identiques (référeces croisées et autre) et ne vois aucune différence qui géné l'intégration de cette DLL dans l'EXE final.

Je vous remercie par avence pour votre aide,