2010-02-01 4 views
2

Je dispose d'un contrôle activeX, qui demande à l'utilisateur s'il veut est pour l'installer à chaque fois la page se charge (même si elle est déjà installée) ...ActiveX demande à l'utilisateur d'installer à chaque fois que la page se charge

Est-ce que quelqu'un peut-il me montrer la bonne direction? Ce que j'ai essayé jusqu'à présent:

  • Définition de nouvelles règles pour l'interface de classe &.
  • Modification des noms d'interfaces & noms de méthode.
  • Modification du numéro de version
  • et désinstallation de réinstaller le activeX
+0

Pouvez-vous donner plus de détails sur la façon dont vous l'avez résolu? –

+0

Le projet d'installation a été mal configuré. J'ai commencé un à partir de zéro et cela a fonctionné la première fois. – Sergio

Répondre

2

d'abord voir this MSDN après cela ressemble à ce que vous vivez.

Cela peut se produire lorsque la clé de Registre VerCache peut pas être mis à jour lors de la mise à niveau du contrôle. Pour exemple, [HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ ext \ Settings { D7D5ACA4- 4C57-4C75-8D68-BC185E924B4C}] "VerCache" Cela se produit si les anciens et nouvelles versions du contrôle ont la même « créé » la date horodatage, horodatage de date « Modifié » et la taille du fichier .

Si cette clé de Registre n'existe pas, vous pouvez avoir à utiliser le Sysinternals outil Process Monitor pour connecter une repro de le problème, puis recherchez le journal pour la valeur de Registre correcte qui est en cours de vérification. Il est très probablement sous \ ext \ Settings {} ... mais peu importe, veiller à ce qu'au moins un de ces paramètres - « Créé » Date horodatage, « modifié » horodatage date ou la taille du fichier, sur la mis à jour le contrôle est différent de l'ancienne version du contrôle.

Aussi, je voudrais utiliser Process Monitor (Sysinternals) que l'utilisateur installe le contrôle ActiveX pour vérifier qu'il fait les entrées de registre correctes. Cherchez dans le registre les GUID associés à vos "anciens" contrôles et au dernier. Vous voudrez peut-être backup your registry avant de supprimer réellement les clés de registre.

Vous pouvez également essayer un nettoyage de registre ou d'un outil de recherche.

Si ceux-ci ne permettent pas que vous pourriez peut-être fournir quelques détails sur votre contrôle ActiveX.

  1. Avez-vous utilisé la compatibilité binaire?
  2. Quelle version des fenêtres de l'utilisateur?
  3. Quelle version de IE de l'utilisateur?
  4. Est-ce que cela n'arrive qu'à cet utilisateur? (Cela fonctionne pour les autres?)

Est-ce que l'utilisateur ré-installer un logiciel récemment?

Que diriez-vous vérifier:

  • Le registre (Votre ActiveX apporter des modifications de registre?)
  • environnement PATH de l'utilisateur variable

Avez-vous eu l'utilisateur désinscription le dll? Vous pouvez l'exécuter à partir de la ligne cmd où se trouve le fichier dll sur le disque dur:

À partir de l'invite de commande, tapez “regsvr32 /u filename.dll” où «filename» est le nom du fichier que vous souhaitez désenregistrer.

+0

Merci pour l'entrée, mais malheureusement, il n'a pas résolu mon problème ... +1 pour l'effort – Sergio

+0

Eh bien, je l'ai réparé. Le problème était sur le projet d'installation qui a créé le fichier .msi à utiliser dans le fichier .cab. Merci – Sergio

+0

Comment avez-vous résolu ce problème dans votre projet d'installation? –

0

Pour résoudre ce problème, j'ai fini par écrire une action d'installation personnalisée qui supprimait VerCache avant et après chaque installation. J'ai également écrit un really long blog post à ce sujet pour évacuer. J'espère que cela aidera quelqu'un à tomber dans le même temps.

0

Dans mon cas, la solution est de fixer la version de mon contrôle ActiveX dans le fichier de ressources my_active_x_control.rc

Je lis ce blog

Aller à toute machine et commencer à IE8. Sélectionnez Outils> Gérer les addons puis sélectionnez la liste déroulante Afficher: contrôles téléchargés. pour afficher la liste des installés les contrôles Active X ...

La version de mon contrôle était 1.0.0.1. Dès que j'ai mis à jour la version dans le fichier de ressources, l'installation continue a disparu.