.Net 4.0 Office 2007插件MSI安装

时间:2012-09-26 10:25:40

标签: c#-4.0 vsto outlook-addin outlook-2007

我创建了一个.Net 4.0(x86)Office 2007(32位)Outlook插件。制作插件很容易,使安装程序更加乏味。

在对VSTO进行一些研究以及如何为其创建MSI后,我(以及其他一些开发人员进行验证)已经跟踪了"Deploying a Visual Studio 2010 Tools for Office Solution Using Windows Installer",并针对"Deploying a VSTO 2010 solution for Office 2007/2010 using Windows Installer"进行了手动检查。我也做过一些研究,比如测试"How do you assign the Assembly Location of an Excel VSTO Installation?"等等,我不记得一切。

已经处理了所有必需的依赖项,并且手动双击.vsto文件将其成功安装并且用户可以使用它。 (看看Process Monitor这似乎使用SideBySide安装,找不到任何使用与Microsoft指令相同的注册表项。)

然而,MSI安装仍然无效。它按预期安装正常并注册注册表项,但在Outlook启动时不加载插件。

VSTO registry keys根据文档正确编写。该插件似乎已在Outlook(信任中心)中注册,我可以在那里手动启用它。但是,在手动激活Outlook后重新启动Outlook时,LoadBehavior注册表项从3(已加载,启动时加载)更改为0(已卸载,请勿自动加载)。在任何时候都没有注册插件(它应该注册一个工具栏+按钮)。

如何让MSI正常工作?

为什么指南不起作用? (.Net 4.0的变化?与Office 2007不兼容?只是简单的'错了?)

如何调试实际出错的地方?我在事件日志中找不到任何有用的东西。

(PS!手动安装不是一个选项。文件必须自动部署到大量计算机上。)

1 个答案:

答案 0 :(得分:0)

我最终创建了一个NSIS安装程序,我使用静默标志执行vstoinstaller来安装VSTO。我还使用有效的证书对二进制文件进行签名,并且(以编程方式)在安装阶段将证书添加到Trusted存储,然后再安装vstoinstall以绕过-300错误代码。