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

Framework .NET Discussion :

[ClickOnce] Comment déployer proprement en ajoutant une dll du GAC ?


Sujet :

Framework .NET

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 33
    Points : 34
    Points
    34
    Par défaut [ClickOnce] Comment déployer proprement en ajoutant une dll du GAC ?
    Bonjour,

    J'essaye de déployer, avec ClickOnce, une application qui utilise une dll de mon GAC.
    Quand je clique sur le lien de ma page de déploiement sur un autre PC, j'ai une erreur : "Cette application requiert l'assembly X qui doit d'abord être intallée dans le GAC".

    Si j'inclus la dll en question au projet j'ai une erreur du type "Nous nous excusons du désagrement causé, l'application doit se fermer."

    Quelle est la méthode pour installer l'assembly proprement sur le poste distant avec ClickOnce? Est il possible de pas l'installer et d'utiliser l'assembly fournie lors de la publication?

  2. #2
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 33
    Points : 34
    Points
    34
    Par défaut
    Bon j'avance petit à petit...

    Ma dll, qui est un composant COM graphique (activeX), doit normalement être installée dans le registre.
    Mais, si les postes sont sous Windows XP, il suffit de positionner l'attribut Isolated de la référence COM à true et ainsi pas besoin de l'enregistrer. Là, la magie de la technique "reg free COM" doit opérer!

    Evidemment, je travaille sur un environnement hétérogène et mon poste client actuel et sous Windows 2000!
    Apparemment, on peut faire le travail de localisation à la main! Pour l'instant, je fais :

    [DllImport("kernel32.dll")]
    internal static extern IntPtr LoadLibrary(String dllname);
    [DllImport("kernel32.dll")]
    internal static extern IntPtr GetProcAddress(IntPtr hModule, String procName);

    IntPtr stdole = LoadLibrary("stdole.dll");
    IntPtr proc = GetProcAddress(stdole, "DllGetClassObject");
    La dll est chargée, la fonction DllGetClassObject est localisée. Ensuite, je dois appeler cette fonction pour obtenir l'objet COM et appeler sa méthode IClassFactory.CreateInstance() mais je ne sais pas comment faire...
    Si y'en a qui ont suivi, des idées??

  3. #3
    En attente de confirmation mail

    Homme Profil pro
    Inscrit en
    Décembre 2003
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2003
    Messages : 219
    Points : 108
    Points
    108
    Par défaut
    Bonjour,
    je suis aussi interessé par ton pb, mais pas d'idée.
    Pièrre de faire signe si tu le résoud.
    Merci

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/12/2009, 12h00
  2. Comment Ajouter une dll a son application web ?
    Par kedare dans le forum ASP.NET
    Réponses: 7
    Dernier message: 08/02/2007, 16h47
  3. Réponses: 2
    Dernier message: 12/09/2006, 17h48
  4. ajouter une dll à un projet devcpp....
    Par youp_db dans le forum Windows
    Réponses: 1
    Dernier message: 28/09/2005, 21h33
  5. ajouter une dll à un projet devcpp....
    Par youp_db dans le forum Dev-C++
    Réponses: 1
    Dernier message: 28/09/2005, 20h47

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