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

VB.NET Discussion :

Déploiement de dll "maison"


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 6
    Par défaut Déploiement de dll "maison"
    Bonjour,

    Travaillant depuis des années sur VB6, avec lequel j'avais un certain nombre d'habitudes, je me débats actuellement à essayer de trouver mes marques avec les bibliothèques de classes, notamment sur la question du déploiement sur les machines clientes, la façon de gérer les versions successives de mes dll faites "maison".

    Avec COM/ActiveX (dll faite en VB6 par exemple), il fallait que la dll soit enregistrée en base de registres (grâce à regsvr32.exe, ou encore tlbinf32.dll par programmation).
    Ce qui servait à identifier un composant, c’était son GUID, son numéro de version COM majeur, son numéro de version COM mineur, et son LCID (numéro de langue dans Windows).
    Une fois enregistré, ces informations permettaient au système de localiser le composant quelque soit son emplacement sur la machine.

    En .net, il semble qu’une dll ne nécessite pas d’enregistrement en base de registres.
    Dès lors, comment fonctionne le déploiement ?
    Il semble (d’après mes tests préliminaires) que la dll doive se trouver dans le dossier de l’exécutable (ou au chemin relatif qui a été indiqué lors de la construction du projet client de la dll).
    Cela signifierait que chaque exécutable client d’une même dll est susceptible d’avoir sa propre copie de la dll, en fonction de l’endroit où il se trouve.

    Quel est le fonctionnement réel à ce niveau, sachant que la question est importante en tout premier lieu concernant le déploiement sur des machines de clients ?

    Je vous remercie par avance de votre sollicitude envers ma question de dinosaure du développement

  2. #2
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    bonjour zoorgh
    Eh bien le .net framework procede comme suit :
    MSDN doc citation:
    Méthode de localisation des assemblys par le runtime
    Scénarios de déploiement pour les applications .NET Framework
    Étape 1 : examen des fichiers de configuration
    Étape 2 : recherche des assemblys précédemment référencés
    Étape 3 : vérification du Global Assembly Cache
    Références d'assembly partielles
    le mot "Run-time" signifie ici le fameux JIT ou chargeur d'application .net framework.
    Le JIT cherche dans cet ordre l'assembly exe ou dll:
    1=>veut dire fichier de configuration de l'appli.
    2=>veut dire si l'assembly est deja charge en memoire au moment ou une autre appli cherche à le charger.
    3=> veut dossier Global Assembly Cache dans dossier System de Windows....

    En resume dans un projet Setup MSI :

    2/deployement prive ou particulier(par defaut pour un projet MSI) .
    - ajouter la dll dans le "dossier appli" de l'editeur projet Setup
    -la c'est comme en com.
    3/deployement partage (dll partage par plusieurs appli)
    - ajouter la dll dans le dossier Global Assembly Cache(GAC) de l'editeur projet Setup
    Cela entraine que la dll sera installee dans le GAC de la machne cible ou user.
    - la dll doit etre signee (en jargon mocrosoft doit avoir un "nom fort" pour generer une cle de decryptage de l'assembly.
    Alors pointe toi à signing dans ton projet appli dll pas projet setup et signe....


    comment ajouter une dll dans dossier Global Assembly Cache?
    MSDN doc citation:
    Global Assembly Cache
    Le Global Assembly Cache est un cache de code fourni par .NET Framework, utilisé pour stocker des assemblys qui doivent être partagés par plusieurs applications.Pour être installé dans le Global Assembly Cache, l'assembly doit posséder un nom fort, ce qui permet à une application ou à un composant de disposer d'une identité unique que d'autres logiciels peuvent utiliser pour l'identifier et y faire référence de manière explicite.Pour plus d'informations, consultez How to: Sign an Assembly (Visual Studio).

    Pour installer un assembly sur le Global Assembly Cache, ajoutez l'assembly ou le groupe de sorties de projet de l'assembly au dossier Global Assembly Cache dans l' Éditeur du système de fichiers. Pour ouvrir cet éditeur, dans le menu Affichage, sélectionnez Éditeur, puis cliquez sur Éditeur du système de fichiers.

    Le dossier Global Assembly Cache est différent des autres dossiers de l' Éditeur du système de fichiers. Il ne comporte aucune propriété définissable, et vous ne pouvez pas créer de raccourcis vers le dossier ou les assemblys dans le dossier.
    La citation qui precede sous-entend que le travail mentionne doit etre fait dans le projet Setup...
    bon code.................

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