IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI/Outils Discussion :

Redefinir emplacement dll pour compilation


Sujet :

EDI/Outils

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Employer
    Inscrit en
    Juillet 2013
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Employer
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2013
    Messages : 33
    Points : 29
    Points
    29
    Par défaut Redefinir emplacement dll pour compilation
    Bonjour,

    J'ai développé un petit programme qui assemble des PDF avec itext7.
    iText7 que j'ai installé depuis le gestionnaire NuGet.
    Mon projet en vb.net fonctionne bien.

    Maintenant je voudrais déplacer les dll d'itext7 dans un sous-répertoire du projet.
    Mais j'ai beau essayer diverse méthode, le programme ne fonctionne plus ensuite.
    J'ai beau cherché je ne trouve pas de réponse claire ou je ne les comprend pas.

    L'une des réponses qui me paraissait la plus prometteuse, étais de le définir dans le fichier "app.config", m'enfin, si j'ai bien compris, rien n'est moins sure
    https://www.developpez.net/forums/d4...emin-vers-dll/

    Et donc j'ai voulu utiliser ce qu'il appelle le "Probing"

    mais je n'arrive pas à le mettre en place. Pourriez-vous m'aider?

    Merci

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    avec appdomain.loadassembly tu peux spécifier le chemin d'une dll, si tu le fais au démarrage du programme ca devrait passer
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Employer
    Inscrit en
    Juillet 2013
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Employer
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2013
    Messages : 33
    Points : 29
    Points
    29
    Par défaut
    Effectivement, le probing n’était point probant...

    Merci Pol63, après étude, de ta proposition il s'avère que ça été beaucoup mieux

    Et voici une parti du code que j'ai utilisé pour mon problème
    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
     
        Private Function LoadAssembly(ByVal Sender As Object, ByVal args As ResolveEventArgs) As [Assembly]
            Dim strTempAssmbPath As String
            'Retrieve the list of referenced assemblies in an array of AssemblyName.
            Dim objExecutingAssemblies As [Assembly] = [Assembly].GetExecutingAssembly()
            Dim arrReferencedAssmbNames() As AssemblyName = objExecutingAssemblies.GetReferencedAssemblies()
            'Loop through the array of referenced assembly names.
            For Each strAssmbName As AssemblyName In arrReferencedAssmbNames
     
                'Look for the assembly names that have raised the "AssemblyResolve" event.
                If (strAssmbName.FullName.Substring(0, strAssmbName.FullName.IndexOf(",")) = args.Name.Substring(0, args.Name.IndexOf(","))) Then
     
                    'Build the path of the assembly from where it has to be loaded.
                    strTempAssmbPath = Application.StartupPath & "\Support\" & args.Name.Substring(0, args.Name.IndexOf(",")) & ".dll"
                    'Load the assembly from the specified path. 
                    Dim MyAssembly As [Assembly] = [Assembly].LoadFrom(strTempAssmbPath)
     
                    'Return the loaded assembly.
                    Return MyAssembly
                End If
     
            Next strAssmbName
     
        End Function
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            AddHandler AppDomain.CurrentDomain.AssemblyResolve, AddressOf LoadAssembly
            'reste de mon initialisation de mon userform........
            ....
        End Sub
    En gros, si le programme ne trouve pas les dll dans les endroit habituel, il ira les chercher dans le sous-rep Support que j'ai défini.
    Malheureusement je ne sais plus ou j'ai pris cette exemple, mais dans tout les cas merci aussi à eux....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 20/08/2015, 18h14
  2. Compiler une dll pour Excel VBA
    Par ANOVA dans le forum Code::Blocks
    Réponses: 4
    Dernier message: 15/07/2014, 22h54
  3. Compilation DLL pour architecture ARM
    Par anthony.cortez dans le forum Delphi
    Réponses: 3
    Dernier message: 18/04/2014, 09h16
  4. Réponses: 0
    Dernier message: 21/01/2011, 09h14
  5. [DLL] Utilisation d'une DLL pour utiliser serveur Firebird
    Par sekiryou dans le forum Bases de données
    Réponses: 2
    Dernier message: 11/08/2004, 14h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo