ActiveX asks user to install every time the page loads
I have an activeX control, that ask the user if he want's to install it every single time the page loads (Even if it is already installed)...
Can anyone point me in the right direction? What I have tried so far:
- Setting new Guids for the class &am开发者_如何学JAVAp; interface.
- Changing interfaces names & method names.
- Changing version number
- Uninstalling and re-installing the activeX
First see this MSDN post it sounds like what you are experiencing.
This can happen when the VerCache registry key may not have got updated during the upgrade of the control. For example, [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Ext\Settings{D7D5ACA4- 4C57-4C75-8D68-BC185E924B4C}] "VerCache" This happens if the old and new versions of the control have the same “Created” date time stamp, “Modified” date time stamp and the file size.
If this registry key doesn't exist, you may have to use the Sysinternals Process Monitor tool to log a repro of the problem, then search the log for the correct registry value that is being checked. It's most likely under \Ext\Settings{}...but regardless, ensure that at least one of these parameters - “Created” date time stamp, “Modified” date time stamp or the file size, on the updated control is different from the old version of the control.
Also, I would use Process Monitor (Sysinternals) as the user installs the ActiveX control to check that it is making the correct registry entries. Search through the registry for the any GUID's associated with your "old" controls and latest. You may want to backup your registry before actually deleting any registry keys.
You could also try a registry cleaning or search tool.
If these don't help perhaps you could provide some more details about your ActiveX control.
- Did you use binary compatability?
- What Version of windows of user?
- Which version of IE of user?
- Is this only happening to this user? (this works for others?)
Did the user re-install any software lately?
How about checking :
- The registry (Does your ActiveX make any registry changes?)
- The user's PATH environment variable
Have you had the user unregister the dll? You can run this from the cmd line where the dll file is located on the hard drive:
From the command prompt, type “regsvr32 /u filename.dll”
where “filename” is the name of the file that you want to unregister.
To solve this I ended up writing a custom installer action which deleted VerCache before and after each install. I also wrote a really long blog post about it to vent. Hope this helps someone from falling into the same time sink.
In my case the solution was to fix the version of my ActiveX control inside resource file my_active_x_control.rc
I read this blog
Go to any machine and start IE8. Select Tools>Manage Addons then select the Show:Downloaded Controls dropdown. to view the list of installed Active X controls...
The version of my control was 1.0.0.1. As soon as I updated version inside the resource file continuous installation disappeared.
精彩评论