InstallShield and Addin Express.NET

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

InstallShield and Addin Express.NET
AddinExpress.MSO.2005 error in InstallShield 
Jack Bretcher




Posts: 189
Joined: 2006-06-30
I am trying to build an installshield package to install my Add-in Express Outlook Addin. I have added AddinExpress.MSO.2005 to the list of files, but when I build it I get the following error message:

ISDEV : warning -6248: Could not find dependent file AddinExpress.MSO.2005, or one of its dependencies of component GEBRE.dll

Also, when I scan the GEBRE.dll (project output dll) I shows AddinExpress.MSO.2005 as a dependency but it shows it as missing.

WHat am I missing here????

Jack
Posted 14 Jul, 2006 00:45:45 Top
Martin Mizzell




Posts: 77
Joined: 2006-06-02
Go into the installation designer view and select the "Components" node on the tree. Look for the GEBRE.dll component and change the ".Net Scan At Build" property (I think that's the name) from "Dependencies and Properties" to "Properties Only".

This will remove the warning from the build process. The reason the warning is showing up is because the addin dll is not in the same folder as the addin express MSO dll. No big deal.

Hope that helps,

Martin Mizzell
AnointedCS
Posted 14 Jul, 2006 01:02:11 Top
Jack Bretcher




Posts: 189
Joined: 2006-06-30
Martin,

Thanks for the tip it did stop the warning.

My project builds now but it does not register the Addin on install.

I tried to set self register on the dll but on install it fails with a error 1904, Hresult: 2147220473

I am sure there is something simple I need to do to get it to regsiter and install, I am used to working with VS6 where I jsut had to set the self register and life was good.....

Thanks for you help,

Jack
Posted 14 Jul, 2006 08:35:31 Top
Jack Bretcher




Posts: 189
Joined: 2006-06-30
Okay, I figured out the register issue, kind-of.

You need to add AddinExpress.Install.2005.dll to the installshield project and set the .NET installer class to yes, then set the Install, uninstall and rollback args to /Shim="[TARGETDIR]\GEBREShim.dll"

Now that I have this I am back at the same point as I was with the VS2005 install, it fails to register with the following message:

Detailed technical information follows:
---
Date and Time: 7/14/2006 9:19:29 AM
Machine Name: BRETCHERMAIL
IP Address: 192.168.2.5
Current User: NT AUTHORITY\SYSTEM

Application Domain: DefaultDomain
Assembly Codebase: file:///D:/Program Files/Sonoma Enterprises/GEBRE Add-in/AddinExpress.Install.2005.dll
Assembly Full Name: AddinExpress.Install.2005, Version=2.6.1760.2005, Culture=neutral, PublicKeyToken=null
Assembly Version: 2.6.1760.2005
Assembly Build Date: 10/26/2004 2:06:50 AM

Exception Source: AddinExpress.Install.2005
Exception Type: System.ApplicationException
Exception Message: An error occurred during the add-in registration process.
Exception Target Site: InstallAddin

---- Stack Trace ----
AddinExpress.Install.ADXProjectInstaller.InstallAddin(addinFullName As String, adxAssemblyName As String, check As String, gac As String, regasm As String)
AddinExpress.Install.2005.dll: N 0184 (0xB8) IL


Posted 14 Jul, 2006 10:10:33 Top
Todd Carlson




Posts: 29
Joined: 2006-05-07
Jack,
For installshield I think the command line should be:

/Shim="[INSTALLDIR]\shimdll.dll"

Todd
Posted 14 Jul, 2006 10:31:00 Top
Martin Mizzell




Posts: 77
Joined: 2006-06-02
Hi Jack,

If what Todd just suggested does't work, please use this:

/Addin="[INSTALLDIR]GEBRE.dll"

do not forget the quotes!

Also, you need to make certain that you have the shim set to self register. If you dont know how:
-Open the Installation Designer.
-Find the "Files and Folders" node on the tree under "Application Data"
-Look at your install folder (thats where the shim and addin should be placed).
-Right click the shim dll in the File Listview.
-Select self register.

At this point, your addin should register in Outlook as long as you have placed the ADX dependencies in the correct spot. If you need more information on what dependencies are required, search this forum for "Installation Woes" and you will find the answer from Sergey about half way down.

I hope that brings you up to speed. I will try to answer any other ?'s you may have.

Best regards,

Martin Mizzell
AnointedCS
www.anointedcs.com

Posted 14 Jul, 2006 11:27:17 Top
Martin Mizzell




Posts: 77
Joined: 2006-06-02
Jack,

Just to be very clear, the installer class arguments i posted above are to be run on the AddinExpress.MSO.2005.dll. You dont need to run any other installer classes unless you have custom actions in your installer.

Martin
Posted 14 Jul, 2006 11:29:26 Top
Sergey Grischenko


Add-in Express team


Posts: 7235
Joined: 2004-07-05
Hi Jack.

I have a little example on how you can create the setup project in InstallShield. You can download it here:
http://www.add-in-express.com/projects/vs2005issetupexample.zip
Posted 14 Jul, 2006 11:58:19 Top
Jack Bretcher




Posts: 189
Joined: 2006-06-30
Martin,

Thanks for your post and offer to answer other ?'s.

It seems the more time I spend trying to figure out what is going right/wrong the more confused the whole process becomes.

First a question. You said to include the shim file, yet in the VSSetup.rtf doc it says to use the /Addin="[TARGETDIR\GEBRE.dll" syntax if you are not using the shim. Do I need the shim if I use that syntax? Also when I add the shim and have it self register the registration of it fails on the destination machine. I would prefer not to have to include/build the shim if it is not needed. Also, is there a doc that gives details as to what the shim actually does?

Second thing. I looked back at Sergey's post and it raises some other questions. It tells you to register Extensibility.dll, Office.dll, stdole.dll in the GAC using gacutils.dll. I am not sure how that is done, I assume it is done by making them key files and scanning at build??


I am sure I am just making this much harder than it needs to be and I am just missing something simple.

Thanks for you help,

Jack
Posted 14 Jul, 2006 12:13:27 Top
Todd Carlson




Posts: 29
Joined: 2006-05-07
Jack,
It appears that the problem is an IS problem. If you are in VS & add the IS project to your solution (like a normal person would), then the shim cannot be set to "Self-Register". Setting COM Extract at build should compensate for this, but at least in my test (VS2k5, IS12) the COM Extract at build for the shim is failing.

Sergey's example eliminates this issue by using IS standalone & referencing the DLLs directly.

If you remove the Shim_Primary_Output from the IS project and instead add the resulting DLL directly to the install (ShimDLL.dll), you can set the self-register attribute & in theory should solve the problem (I haven't had a chance to test it yet).

Todd
Posted 14 Jul, 2006 12:29:13 Top