0

在我改用 ExcelDNA 之前,

我的插件是 COM AddIn,用 C# 开发,VS 2008 for Excel 2003+

我的安装程序是通过 VS 2008 中的安装项目创建的

在安装期间,在自定义操作中调用 install.xls,它调用 xla 来注册我的 UDF

现在,我切换到 ExcelDNA,

我的插件更改为

公共类连接:ExcelRibbon,IExcelAddIn

我还是在VS中使用Setup项目,保持相同的upgradeCode,

在安装过程中,在自定义操作中调用 install.xls,它调用 xll 来注册我的 UDF

这适用于新安装,即没有旧版本

但是,如果有旧版本的 myAddin (COM Addin)

如果我在它上面安装我的 Addin 的新版本(excelDna 版本),

我希望新版本会覆盖旧版本。

但是,出现一个错误,说“在初始化插件时出现问题(InitializedFailed)......”

可能这里很多人以前都有过类似的经历。

你是如何解决这个问题的?多谢 !!

4

1 回答 1

0

这与已签署的项目有关。我曾经有两个项目(dll)被第三个dll签名和引用。后来我删除了签名。并在第三个 dll 中引用未签名的 dll。

当我从以前的版本升级时,由于某种原因这两个 dll 没有更新。因此,第三个查找未签名版本的 dll,而仅在安装文件夹中查找签名版本。所以我得到了初始化失败的错误。

我再次签署了两个 dll 并在我的第三个 dll 中引用它们,然后升级工作正常。

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

然而一个问题是,为什么这两个 dll 在新安装期间更新,而不是在升级安装期间?这是 Windows 安装程序中的错误还是我想念的东西?谢谢

于 2011-06-14T16:07:24.720 回答