我创建了一个.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!手动安装不是一个选项。文件必须自动部署到大量计算机上。)
答案 0 :(得分:0)
我最终创建了一个NSIS安装程序,我使用静默标志执行vstoinstaller来安装VSTO。我还使用有效的证书对二进制文件进行签名,并且(以编程方式)在安装阶段将证书添加到Trusted存储,然后再安装vstoinstall以绕过-300错误代码。