问题描述
||
在我更改为ExcelDNA之前,
我的插件是COM插件,是用C#,VS 2008 for Excel 2003+开发的
我的安装程序是通过VS 2008中的安装项目创建的
在安装过程中,在“自定义操作”中调用install.xls,该操作将调用xla来注册我的UDF
现在,我切换到ExcelDNA,
我的插件已更改为
公共课Connect:ExcelRibbon,IExcelAddIn
我仍然在VS中使用安装项目,保持相同的upgradeCode,
在安装过程中,在自定义操作中调用install.xls,该操作将调用xll来注册我的UDF
对于新安装,它工作正常,即没有旧版本
但是,如果存在旧版本的myAddin(COM加载项)
如果我在其顶部安装Addin的新版本(excelDna版本),
我希望新版本会覆盖旧版本。
但是,出现错误,提示“在初始化插件时发生问题(InitializedFailed)...”
也许这里很多人以前都有过类似的经历。
您是如何解决这个问题的?非常感谢 !!
解决方法
这与签署的项目有关。
我曾经有两个由第三个dll签名和引用的项目(dll)。后来我删除了签名。
并在第三个dll中引用未签名的dll。
当我从以前的版本升级时,由于某种原因两个dll没有更新。
因此,第三个查找未签名版本的dll,而仅在安装文件夹中找到签名版本。所以我得到了initializedfailed的错误。
我再次签名了这两个dll,并在我的第三个dll中引用了它们,然后升级正常。
更多信息http://blogs.msdn.com/b/tomholl/archive/2007/04/19/avoiding-configuration-pitfalls-with-incompatible-copies-of-enterprise-library.aspx
但是,一个问题是,为什么这两个dll在新安装过程中被更新,而不在升级安装过程中被更新?
这是Windows Installer中的错误还是我想念的东西?谢谢