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

Microsoft Office Discussion :

Comment deployer un "complément partagé" developpé avec VB2010 express?


Sujet :

Microsoft Office

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Comment deployer un "complément partagé" developpé avec VB2010 express?
    Bonjour,

    J'ai développer un complément partagé Word (Word shared addin) à l'aide de Visual Basic 2010 Express et je cherche maintenant à le déployer sur d'autres machines.
    Lors de mon essai avec Visual Studio 2010 Pro, la création d'un complément partagé est accompagnée d'un sous projet permettant de générer un installeur.
    Ce sous projet refuse de s'ouvrir sous Visual Studio Express Edition.

    J'ai donc analysé l'installeur de la version pro et découvert que celui-ci installait les choses suivantes :
    * La dll de mon complément dans "Program Files"
    * Les clés registres suivantes : [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\Word\Addins\mysharedaddin.Connect]
    "FriendlyName"="my shared addin"
    "Description"="Blabla"
    "LoadBehavior"=dword:00000003

    J'ai donc crée mon propre installateur pour faire la même chose mais cela ne suffit pas. Word ne détecte pas ce complément.
    Il manque à mon avis une clé de registre indiquant où est situé la dll sur le disque dur et surement d'autres choses.

    Quelqu'un aurait-il une solution pour que je puisse déployer mon complément facilement sans le générateur d'installeur de VS2010Pro?

    Merci d'avance.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Je viens de faire une export de base de registre avant et après l'utilisation de l'installeur officiel et je trouve 51 nouvelles clés après installation. Il semblerait que je sois loin du compte avec les 4 que je crée précédemment (une fois de plus, microsoft fait dans la simplicité en ce qui concerne la base de registre )

    Il me semble avoir déjà lu qu'il existait une exécutable livré avec Visual Studio pour générer les projets "Shared Addin" mais je n'arrive pas a le retrouver.
    Quelqu'un le connait-il et pourrait m'expliquer comment il fonctionne?

    Merci d'avance,

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Pour ceux que ça pourrait intéresser j'ai enfin trouvé la solution à mon problème d'installation de "complément partagé" sans passer par Visual Studio Pro.

    Il suffit d'inscrire son assembly (la ddl généré par Visual Studio Express pour le complément partagé) dans le registre en y créer des classes .Net Framework à partir de notre client COM.
    Pour cela, un exécutable nommé "regasm.exe" est installé avec le .Net Framework.
    Voir http://msdn.microsoft.com/fr-fr/libr...=vs.80%29.aspx pour l'aide Microsoft de cet exécutable.

    Voici la commande à exécuter manuellement (si vous travaillez avec .Net Framework 4.0) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe /codebase "C:\chemin de votre projet\SampleActiveX.dll"
    Pour l'installeur d'un complément Word, il suffit ensuite d'utiliser un freeware comme InnoSetup et de lui faire exécuter un script pour :
    • Copier la dll du complément dans "C:\Program Files\mon chemin"
    • Copier les dll de ressources (si vous en avez) dans "C:\Program Files\mon chemin"
    • Créer la clé [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Word\Addins\mysharedaddin.Connect]
    • Créer la sous-clé "FriendlyName"="my shared addin"
    • Créer la sous-clé "Description"="Blabla"
    • Créer la sous-clé "LoadBehavior"=dword:00000003 (pour une exécution automatique au démarrage de Word)
    • Exécuter [...]regasm.exe /codebase "C:\Program Files\mon chemin\SampleActiveX.dll"


    Perso, j’incorpore une copie de regasm.exe dans mon installeur InnoSetup que je décompresse dans le répertoire de mon complément afin d'être sûr de son emplacement quand je le ferai exécuter par Inno (voir option AfterInstall de ce soft). L'emplacement par défaut est en effet fonction de la version de .Net Framework installée ce qui peut s’avérer gênant.

    Dans la partie désinstallation de innoSetup, on lui fera :
    • Exécuter [...]regasm.exe /unregister "C:\Program Files\mon chemin\SampleActiveX.dll"
    • Effacer les fichiers de "C:\Program Files\mon chemin"
    • Effacer les clés de registres [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Word\Addins\mysharedaddin.Connect]


    Voila, il est donc parfaitement possible de créer et déployer un complément partagé sans utiliser la version professionnelle et payante de Visual Studio. Grâce à cette exécutable regasm.exe fournit par Microsoft, la version Express (gratuite) est amplement suffisante.

    Bon codage,

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

Discussions similaires

  1. [VB6>VB.NET] Comment coder "break on all errors"
    Par RiiiDD dans le forum VB.NET
    Réponses: 5
    Dernier message: 07/03/2006, 12h53

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