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

C# Discussion :

[VSTO 3.0] Addin Outlook en C# et accès à la base de registre


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 77
    Par défaut [VSTO 3.0] Addin Outlook en C# et accès à la base de registre
    Bonjour

    j'ai développé un petit addin outlook avec VSTO 3.0 (visual 2008, .net 3.5, environnement Vista) qui fait à peu près ce qu'il a à faire.

    J'ai voulu ajouter un peu de logs car il semblerait qu'il plante assez rarement et aléatoirement et difficile de savoir ce qui se passe sans log.

    Le problème ne se produisant que dans l'environnement dans lequel l'add-in est déployé (cad chez le client) et que la demande a été exprimé de pouvoir configurer le chemin dans lequel le fichier de log est écrit, j'ai pensé mettre cette valeur de chemin en paramètre dans la base de registre.

    Evidement, quand j'ai testé dans visual studio en debug ça a fonctionné mais au déploiement, nada, que tchi, point de log générer.

    Après quelques tests, il semble que le code de l'addin ne puisse accéder à la base de registre, problème de droit j'imagine.

    Je ne sais pas du tout ce qui coince, il y a d'autres add-in outlook qui eux peuvent accéder à la base de registre (mais c'est plutot du com c'est pas .net)

    Pour info je déploie l'addin vsto avec clickOnce et tout est signé (l'assembly + les manifestes ClickOnce)

    si quelqu'un a une idée de comment résoudre ce problème je suis preneur (j'ai testé très brièvement d'avoir un fichier de config avec l'addin mais il n'est pas capable de le trouver au runtime donc j'ai laissé tomber cette piste).

    Merci d'avance

  2. #2
    Membre averti Avatar de emiscool
    Profil pro
    architecte logiciel
    Inscrit en
    Octobre 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : architecte logiciel

    Informations forums :
    Inscription : Octobre 2006
    Messages : 45
    Par défaut
    Pour vérifier est ce le problème est liée au droit d'accés tu peux lancer ton exe en mode administrateur (click droit puis démarrer l'appli avec compte administrateur).

    Tu fais test est si ca marche.

    tu peux faire la manipe suivant :

    tu crée un fichier manifest (tonAppli.exe.manifest):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
       <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="tonAppli" type="win32"/>
          <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
          <security>
             <requestedPrivileges>
                <requestedExecutionLevel level="requireAdministrator"/> 
             </requestedPrivileges>
          </security>
       </trustInfo>
    </assembly>

    Tu dois mettre ce fichier dans l'arbo de ton projet.

    et tu dois ajouter la ligne suivante dans l'option événement après génération :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "$(DevEnvDir)..\..\SDK\v2.0\bin\mt.exe" -manifest "$(ProjectDir)$(TargetName).exe.manifest"  –outputresource:"$(TargetDir)$(TargetFileName)";#1
    Compile le projet et fait les tests.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 222
    Par défaut
    Si l'UAC (Controle des Actions des Utilisateurs ) est activé sur le poste Windows, le runtime C# n'accède pas à la base de registre. Il faut soit, désactiver l'UAC, soit lancer le programme en mode Administrateur.

    Dans le cas d'un Add-in, je ne sais pas trop....

  4. #4
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 77
    Par défaut
    Bon bah c'est foutu, l'UAC est nécessairement activé, et les utilisateurs n'auront pas les droits d'admin donc même en changeant le manifest ça ne changera rien...

    c'est pour ça que ça fonctionnait bien en déboguant et pas en runtime depuis Outlook.

    Merci pour les réponses.

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

Discussions similaires

  1. Addin Outlook - changer le serveur SMTP
    Par penchu dans le forum Windows Forms
    Réponses: 5
    Dernier message: 26/05/2011, 13h34
  2. Addin Outlook 2007 (VSTO) + calendrier
    Par clave dans le forum C#
    Réponses: 1
    Dernier message: 21/01/2010, 18h09
  3. [C#][VSTO] supprimer un AddIn d'Outlook
    Par Nycos62 dans le forum Windows Forms
    Réponses: 0
    Dernier message: 23/01/2009, 12h22
  4. Addin Outlook fénêtre de sécurité
    Par lecyberax dans le forum C#
    Réponses: 4
    Dernier message: 16/07/2007, 19h08
  5. Réponses: 5
    Dernier message: 13/06/2007, 17h15

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