What does 'Register Adx Project" do?

Add-in Express™ Support Service
That's what is more important than anything else

What does 'Register Adx Project" do?
 
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