Search code examples
c#excelwindows-installeradd-inexcel-dna

Upgrade issue when COM Addin migrate to ExcelDNA AddIn


Before I change to ExcelDNA,

My addin is COM AddIn, developed in C#, VS 2008 for Excel 2003+

my installer is created via Setup project in VS 2008

during install, install.xls is called in Custom Action, which calls an xla to register my UDF

Now, I switch to ExcelDNA,

My addin is changed to

public class Connect : ExcelRibbon, IExcelAddIn

I still use Setup project in VS, keep the same upgradeCode,

during install, install.xls is called in custom action, which calls an xll to register my UDF

This works fine for a new install i.e. there is no older version

However, if there is an older version of myAddin (COM Addin)

if I install new version of my Addin (excelDna version) on top of it,

I expect the new version will overwrite the older verison.

However, an error comes up saying "A problem occurred while an addin was intialized (InitializedFailed)..."

Maybe many people here have similar experience before.

How did you solve the issue? thanks a lot !!


Solution

  • This is related to signed projects. I used to have two projects(dll) signed and referenced by third dll. Later I remove signing. and reference unsigned dlls in the third dll.

    When I upgrade from previous version, for some reason the two dll are not updated. So the third one looks for unsigned version of dlls while only find signed version in installation folder. So I got the error of initializedfailed.

    I signed both dll again and reference them in my third dll, then upgrade works fine.

    more info http://blogs.msdn.com/b/tomholl/archive/2007/04/19/avoiding-configuration-pitfalls-with-incompatible-copies-of-enterprise-library.aspx

    However one issue is, why those two dlls are updated during new install and are NOT during upgrade install? Is this a bug in windows installer or something I miss? thanks