|
richard lin
Posts: 25
Joined: 2008-09-25
|
I meet a strange problem in a customer's host in which the command line 'regsvr32 adxloader.dll' does not add the AddIn key to the HKEY_CURRENT_USER\Software\Microsoft\Office\Outlook\Addins.
The 'regsvr32 adxloader.dll' shows the success box. But my addin key was not there. In the same host, I load my project using vs.net, and click the menu item "Register Adx project". Now the Addin key was added to the HKEY_CURRENT_USER\Software\Microsoft\Office\Outlook\Addins.
Before occuring this problem, I have always thought that command 'Register Adx Project" is identical to 'regsvr32 adxloader.dll'.
So What does 'Register Adx Project" do?
Thanks
|
|
Posted 22 Oct, 2008 21:00:19
|
|
Top
|
|
Eugene Astafiev
Guest
|
Hi Richard,
Does your customer use Vista? Is it x64?
Please try to register an add-in manually and within Visual Studio, save the adxloader.log (see the <My Documents>\Add-in Express folder) files and send me these files to the support e-mail address (see Readme.txt). Are they identical?
|
|
Posted 23 Oct, 2008 05:45:39
|
|
Top
|
|
richard lin
Posts: 25
Joined: 2008-09-25
|
My problem is very similar to the case of :
http://www.add-in-express.com/forum/read.php?FID=5&TID=3124
Couple of months ago, I sent an outlook 2007 addin that depends on the addin express 2007 dlls. The customer host does not have addin express 2007. We just shipped it with addin express dlls. One of them is AddinExpress.OL.2003. Everything was doing well.
Couple weeks ago, I converted the project using addin express 2008, and I sent an alpha version of the updated addin (identical plugin name but different GUID for the addin assembly). I believe that the previouse addin (depending on addin 2007) was not uninstalled due to my poor installer in the alpha version. The new addin just reinstalled at the same directory location and registered. The addin key under HKEY_CURRENT_USER\Software\Microsoft\Office\Outlook\Addins is same as the previous plugin.
Now, the adxloader log showed error message as:
Error: Could not load file or assembly 'AddinExpress.OL.2003, Version=3.7.918.2003, Culture=neutral, PublicKeyToken=e69a7e0f3592d2b8' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
The customer host is a regular x86 windows xp host. So, at this point is there anyway to clean up the customer's host?
Or any other suggestions? What about I change the progID and dll name for my new addin?
|
|
Posted 23 Oct, 2008 15:29:11
|
|
Top
|
|
richard lin
Posts: 25
Joined: 2008-09-25
|
More information.
I was not able to create addin key in the customer host under HKEY_CURRENT_USER\Software\Microsoft\Office\Outlook\Addins
Instead, I worked with customer and installed the vs 2003 and addin express 2008 in the customer machine. I loaded my project and uses the menu command "Register ADX Project" and successfully registered my addin in the dev folder.
|
|
Posted 23 Oct, 2008 15:33:53
|
|
Top
|
|
Eugene Astafiev
Guest
|
Hello Richard,
Please remove all records of your old add-in from the registry. Search for the Guid and ProgId of the add-in. |
|
Posted 24 Oct, 2008 05:45:56
|
|
Top
|
|
richard lin
Posts: 25
Joined: 2008-09-25
|
I figured out the problem.
The problem is not in the cutomer's host. Instead, the problem comes from my build enviroment. I did upgrade installation from Add-in express 2007 to Add-in express 2008 for VS .NET 2003. After installation, we thought that all the project will depend on the addin express 2008 related assemblies. However, that is not true. The addin express 2007 is still in the addin express folder. My generated assembly has some connection with the addin express 2007 related dlls for unknow reason. While deploying to customer host, the adxloader registration generated errors to request "'AddinExpress.OL.2003, Version=3.7.918.2003" which is part of addin express 2007.
My fix is to rename the addin express 2007 in my c:/program files/addin express/. And I rebuilt my addin dlls and shipped to my customer. Now the problem is solved.
I belive this is the add-in express 2008 installation bug.
|
|
Posted 24 Oct, 2008 20:02:30
|
|
Top
|
|
Eugene Astafiev
Guest
|
Hello Richard,
Did you un-install Add-in Express 2007 before installing a new version?
Did you update (remove old and add new ones) references in your project after installing a new version of Add-in Express?
|
|
Posted 27 Oct, 2008 06:09:39
|
|
Top
|
|
Eugene Astafiev
Guest
|
Richard,
Sorry, I didn't answer your main question:
So What does 'Register Adx Project" do?
As you know the adxloader.dll uses the manifest file. Typically the manifest contains the following:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<assemblyIdentity name="MyAddin52, PublicKeyToken=9155fd67f67ea00c" />
<loaderSettings generateLogFile="true" shadowCopyEnabled="true" privileges="user" configFileName="app.config" />
</configuration>
When you register the add-in within Visual Studio the settings will be the same except the privileges attribute. The value of this attribute will be true for Visual Studio. |
|
Posted 27 Oct, 2008 06:20:07
|
|
Top
|
|
richard lin
Posts: 25
Joined: 2008-09-25
|
I did upgrade installation for addin express 2008 without thinking anything else.
After reading a book about c#, I figured out that an easier way to check the dependency of the generated dll is to use the ildasm to load the dll and check the manifest. Then I could figure out that the dll was depending on the 'AddinExpress.OL.2003, Version=3.7.918.2003'. I did not expect that I need to do anything extra after update-installing the addin-in express 2008.
After renaming the addin express 2007 folder name, everything is solved. |
|
Posted 28 Oct, 2008 00:39:49
|
|
Top
|
|
Eugene Astafiev
Guest
|
Thank you for the good news. You are welcome, Richard. |
|
Posted 28 Oct, 2008 07:57:14
|
|
Top
|
|