No Outlook Plugin?

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

No Outlook Plugin?
 
Neil Shepherd




Posts: 29
Joined: 2016-04-27
Hi Guys,

We've developed an Outlook plugin, rolled it out to several hundred users but one user is having problems. The plugin installs via an MSI and should appear in the Outlook ribbon...but on this one particular machine there's nothing.

I've had a look at the Add-Ins section in Outlook's options and the plugin is listed but disabled with the error message "A runtime error occurred during the loading of the COM add-in" (searching for that online revealed next to nothing useful). I've tried enabling it (both onscreen and through the Windows Registry) and it doesn't want to appear. Uninstalling and re-installing makes no difference and although I've added debug code, the plugin doesn't ever reach the point where it's able to start outputting anything.

Having looked at the adxloader.log file I can't see anything obvious but it's listed below so that you can take a look:


Add-in Express Loader Log File: 04/22/2016 14:28:55:989

Startup directory: C:CubicGekko Outlook Plugin
Loader version: 8.1.4350.0
Operating System: Microsoft Windows Vista Business Edition (build 6000), 64-bit
Process Owner: System
Command Line: C:Windowssyswow64MsiExec.exe -Embedding 765379201C7196C816AE479ED2C13217 E GlobalMSI0000
Run 'As Administrator': Yes
Process Elevated: Yes
Integrity Level: System
UAC (User Account Control): On
------------------------------------------------------------------------
14:28:55:990 0532 10892 Starting the add-in registration process.
14:28:55:990 0532 10892 Loading mscoree.dll
14:28:55:991 0532 10892 Getting the latest CLR version.
14:28:55:991 0532 10892 The latest CLR version is 'v4.0.30319'.
14:28:55:991 0532 10892 Loading CLR: v4.0.30319.
14:28:55:991 0532 10892 Calling CLRCreateInstance method.
14:28:55:992 0532 10892 Success.
14:28:55:992 0532 10892 Calling GetRuntime method.
14:28:55:992 0532 10892 Success.
14:28:55:993 0532 10892 Checking if the hosting API of .NET Framework v4.0 beta is installed.
14:28:55:993 0532 10892 The hosting API is up to date.
14:28:55:993 0532 10892 Calling GetInterface method for the CorRuntimeHost interface.
14:28:55:994 0532 10892 Success.
14:28:55:994 0532 10892 Starting CLR...
14:28:55:998 0532 10892 Success.
14:28:55:998 0532 10892 Getting the CLR version.
14:28:55:998 0532 10892 The CLR v4.0.30319 has been initialized successfully.
14:28:55:998 0532 10892 Creating a new domain setup.
14:28:56:000 0532 10892 Success.
14:28:56:000 0532 10892 Getting the add-in directory.
14:28:56:000 0532 10892 Success. The directory is 'C:CubicGekko Outlook Plugin'
14:28:56:001 0532 10892 The 'shadow copy' is disabled.
14:28:56:001 0532 10892 Creating a new application domain.
14:28:56:008 0532 10892 Success.
14:28:56:008 0532 10892 Getting the base directory for the domain.
14:28:56:008 0532 10892 Success. The directory is 'C:CubicGekko Outlook Plugin'.
14:28:56:008 0532 10892 Searching for the Add-in Express core library.
14:28:56:008 0532 10892 Success. The 'AddinExpress.MSO.2005.dll' file has been found.
14:28:56:008 0532 10892 Creating an instance of the 'AddinExpress.MSO.ADXLoaderSupport' class.
14:28:56:008 0532 10892 Assembly identity is 'AddinExpress.MSO.2005'.
14:28:56:014 0532 10892 Success.
14:28:56:014 0532 10892 Unwrapping the instance of the 'AddinExpress.MSO.ADXLoaderSupport' class.
14:28:56:015 0532 10892 Success.
14:28:56:015 0532 10892 Creating an instance of the XML parser class.
14:28:56:015 0532 10892 Success.
14:28:56:015 0532 10892 Loading the manifest file (C:CubicGekko Outlook Plugindxloader.dll.manifest).
14:28:56:015 0532 10892 Success.
14:28:56:015 0532 10892 Getting the root element of the manifest (C:CubicGekko Outlook Plugindxloader.dll.manifest).
14:28:56:015 0532 10892 Success.
14:28:56:015 0532 10892 Getting the 'assemblyIdentity' element of the manifest (C:CubicGekko Outlook Plugindxloader.dll.manifest).
14:28:56:015 0532 10892 Success.
14:28:56:015 0532 10892 Searching for the 'name' attribute of the 'assemblyIdentity' element.
14:28:56:015 0532 10892 Success. The name is 'CubicOutlookPlugin, PublicKeyToken=2b779dc59863af05'.
14:28:56:015 0532 10892 Calling the managed procedure to register the 'CubicOutlookPlugin, PublicKeyToken=2b779dc59863af05' assembly.
14:28:56 0840 10892 Connecting to the application domain of the Add-in Express loader.
14:28:56 0840 10892 Success.
14:28:56 0840 10892 Loading the 'CubicOutlookPlugin, PublicKeyToken=2b779dc59863af05' assembly.
14:28:56 0840 10892 Success.
14:28:56 0840 10892 Registering the 'CubicOutlookPlugin, PublicKeyToken=2b779dc59863af05' assembly (administrator).
14:28:56 0840 10892 The ' CubicOutlookPlugin, PublicKeyToken=2b779dc59863af05' assembly has been registered successfully.
14:28:56 0840 10892 The managed registration process is complete with HRESULT = 0.
14:28:56:278 0532 10892 The add-in registration process is completed with HRESULT = 0.


Any ideas? Is this (yet another) case of having to re-install Outlook?

Thanks
Posted 27 Apr, 2016 10:02:23 Top
Sergey Grischenko


Add-in Express team


Posts: 7233
Joined: 2004-07-05
Hi Neil,

This is the log of adxregistrator.exe. What is the command line do you use to run adxregistrator.exe via the MSI custom actions?
Posted 28 Apr, 2016 04:32:17 Top
Neil Shepherd




Posts: 29
Joined: 2016-04-27
Hi Sergey,

I'm not exactly sure what you mean. All I've done is right-clicked on my plugin project in Visual Studio, selected the Add-in Express sub-menu and then chosen Create Setup Project, and then let it create the setup project using the Visual Studio Installer.

All I've then done is tweak the project for install destination path, icon etc., resolved DLL path problems and set the PostBuildEvent to be:

start "C:Program Files (x86)Add-in ExpressAdd-in Express for .NETBindxpatch.exe" "$([BuiltOuputPath])" /UAC=Off /RunActionsAsInvoker=true


Then I let it build and out pops an MSI and a Setup.exe

Am I missing something crucial/obvious?

Thanks

Neil
Posted 28 Apr, 2016 05:07:39 Top
Sergey Grischenko


Add-in Express team


Posts: 7233
Joined: 2004-07-05
Hi Neil,

What the installer do you use to create the setup project (vdproj, WiX or InstallShield)?
Posted 28 Apr, 2016 05:42:53 Top
Neil Shepherd




Posts: 29
Joined: 2016-04-27
Hi Sergey,

I'm using the Visual Studio Installer (the one that you use in this tutorial: https://www.add-in-express.com/docs/net-msi-setup-project.php)

Having gone through the tutorial again, I've switched the Custom Actions so that they're setup as follows:


Install (adxregistrator.exe): /Install="CubicOutlookPlugin.dll" /privileges=user
Rollback (adxregistrator.exe): /Rollback
Uninstall (adxregistrator.exe): /Uninstall


Having rebuilt the installer again and tried running it on the user's machine, it didn't seem to make any difference.

The project file list is as follows:

User added an image

Could it be that I'm missing something?

I'm hoping that this is going to be something obvious but I'm damned if I can see what it is.

Neil
Posted 28 Apr, 2016 05:54:11 Top
Sergey Grischenko


Add-in Express team


Posts: 7233
Joined: 2004-07-05
Hi Neil,

Please send me the adxregistrator.log file created by the modified installer. Also, please exclude the AddinExpress.MSO.tlb file in the Detected Dependencies section of the setup project. It may affect registry entries of the Add-in Express installation on the developer's PC.
Posted 28 Apr, 2016 08:18:03 Top
Neil Shepherd




Posts: 29
Joined: 2016-04-27
Hi Sergey,

The tlb file is now removed and the installer rebuilt. Still not working but here's the adxregistrator.log file that you asked for - I don't know what it's supposed to show but there does look to be an exception at the end so I'm guessing that this is going to be the problem. Hopefully you'll know exactly what it is and, even better, be able to let me know what I need to do to fix it.

Thanks

Neil


Add-in Express Registrator Log File: 04/28/2016 11:32:57

Installation directory: C:CubicGekko Outlook Plugin
Registrator version: 8.1.4350.0
Operating System: Microsoft Windows 7 Professional Service Pack 1 (build 7601), 64-bit
Process Owner: System
Command Line: "C:CubicGekko Outlook Plugindxregistrator.exe" /Uninstall
Run 'As Administrator': Yes
Process Elevated: Yes
Integrity Level: System
UAC (User Account Control): On
--------------------------------------------------------------
11:32:57 0208 Starting the add-in unregistration process.
11:32:57 0208 Loading mscoree.dll
11:32:57 0208 Success.
11:32:57 0208 .NET Framework installation directory: 
11:32:57 0208 The latest version of .NET Framework: 'v4.0.30319'
11:32:57 0208 Loading CLR: v4.0.30319.
11:32:57 0208 Calling CLRCreateInstance method.
11:32:57 0208 Success.
11:32:57 0208 Calling GetRuntime method.
11:32:57 0208 Success.
11:32:57 0208 Checking if the hosting API of .NET Framework v4.0 beta is installed.
11:32:57 0208 The hosting API is up to date.
11:32:57 0208 Calling GetInterface method for the CorRuntimeHost interface.
11:32:57 0208 Success.
11:32:57 0208 Starting CLR...
11:32:57 0208 Success.
11:32:57 0208 Getting the CLR version.
11:32:57 0208 The CLR v4.0.30319 has been initialized successfully.
11:32:57 0208 Creating a new domain setup.
11:32:57 0208 Success.
11:32:57 0208 Getting the add-in directory.
11:32:57 0208 Success. The directory is 'C:CubicGekko Outlook Plugin'
11:32:57 0208 The 'shadow copy' is disabled.
11:32:57 0208 Creating a new application domain.
11:32:57 0208 Success.
11:32:57 0208 Getting the base directory for the domain.
11:32:57 0208 Success. The directory is 'C:CubicGekko Outlook Plugin'.
11:32:57 0208 Searching for the Add-in Express core library.
11:32:57 0208 Success. The 'AddinExpress.MSO.2005.dll' file is found.
11:32:57 0208 Creating an instance of the 'AddinExpress.Deployment.ADXRegistrator' class.
11:32:57 0208 Assembly identity is 'AddinExpress.MSO.2005'.
11:32:57 0208 Success.
11:32:57 0208 Unwrapping the instance of the 'AddinExpress.Deployment.ADXRegistrator' class.
11:32:57 0208 Success.
11:32:57 0208 Calling the managed unregistration procedure (DISPID = 1610743823).
11:32:57 0208 Managed Error: 
Date and Time:         28/04/2016 11:32:57
Machine Name:          HHL1502
IP Address:            fe80::c139:e78:9b43:95e9%11
Current User:          NT AUTHORITYSYSTEM

Application Domain:    C:CubicGekko Outlook Plugin
Assembly Codebase:     file:///C:/Cubic/Gekko Outlook Plugin/AddinExpress.MSO.2005.DLL
Assembly Full Name:    AddinExpress.MSO.2005, Version=8.1.4350.0, Culture=neutral, PublicKeyToken=4416dd98f0861965
Assembly Version:      8.1.4350.0

Exception Source:      AddinExpress.MSO.2005
Exception Type:        System.ApplicationException
Exception Message:     The '' file doesn't exist in the application directory.
Exception Target Site: RegisterAssembly

---- Stack Trace ----
   AddinExpress.Deployment.ADXRegistrator.RegisterAssembly(commandLine As String)
       AddinExpress.MSO.2005.DLL: N 0512 (0x200) IL 



11:32:57 0208 The add-in unregistration process is completed with HRESULT = -2147467259.
Posted 28 Apr, 2016 08:59:26 Top
Sergey Grischenko


Add-in Express team


Posts: 7233
Joined: 2004-07-05
Hi Neil,

You use the wrong command line for adxregistrator.exe. You should use the command lines below.

Install action:
adxregistrator.exe /install="{add-in assembly name}.dll" /privileges={user OR admin} 

Rollback action:
adxregistrator.exe /uninstall="{add-in assembly name}.dll" /privileges={user OR admin}

Uninstall action:
adxregistrator.exe /uninstall="{add-in assembly name}.dll" /privileges={user OR admin}

Please see our documentation ('Add Custom Actions' on page 229 of adxnet.pdf) to get more info about the custom actions.
Posted 28 Apr, 2016 12:14:57 Top
Neil Shepherd




Posts: 29
Joined: 2016-04-27
Hi Sergey,

I tried using these on my existing installer project and it didn't make any difference.

Instead I attempted to recreate the installer project from scratch. Using the 'automatic' approach resulted in projects that Visual Studio (2015) wouldn't build so I then started again but creating the installer using the 'manual' approach. This, naturally, took longer but would build and, more importantly, has done the job.

What I'm thinking is that either the updated settings weren't being applied into the existing installer project (this project was originally created in Visual Studio 2013 and then migrated across when we switched to 2015) or that Visual Studio was somehow 'mangling' the project/output so that it either wasn't registering properly or was failing to apply settings to the migrated project.

In short: Manually reconstruct the installer project from scratch. I probably should have tried that first.

Thanks for your help in getting this sorted, it's much appreciated

Neil
Posted 29 Apr, 2016 06:29:49 Top
Sergey Grischenko


Add-in Express team


Posts: 7233
Joined: 2004-07-05
Hi Neil,

The log says:
>>....
>>"C:CubicGekko Outlook Plugindxregistrator.exe" /Uninstall
>>....
>>Exception Message: The '' file doesn't exist in the application directory.

It means that you didn't pass the path to the add-in assembly (see the correct command lines above).
Can you please send me the problematic setup project? I will check it.
Posted 29 Apr, 2016 08:42:07 Top