2012-09-26 107 views
2

我创建了一个.Net 4.0(x86)Office 2007(32位)Outlook插件。制作插件是一件容易的事情,使安装程序变得更乏味。.Net 4.0 Office 2007插件MSI安装

经过对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文件可成功安装它,并且用户可以使用它。 (看着进程监视器,这似乎使用SideBySide安装,找不到任何使用与Microsoft指令相同的注册表项。)

但是,MSI安装仍然不起作用。它安装正常并按预期注册注册表项,但插件在Outlook启动时未加载。

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

我如何获得MSI的工作?

为什么导游不工作? (.Net 4.0中的变化?与Office 2007不兼容?只是普通的ol错误?)

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

(PS手动!安装是不是一种选择。文件必须自动部署到大集计算机)。

+0

** Manifest **键的价值是多少?请分享注册表的确切路径,您将添加此密钥。您应该将调试程序附加到'outlook.exe'进程以查看抛出的异常。如果插件崩溃,LoadBehavior将从** 3 **(* Loaded *)更改为** 0 **(* Unloaded *)。 – SliverNinja

+0

Manifest键包含:'C:\ Program Files(x86)\ Company \ Company.OutlookPlugin \ Company.OutlookPlugin.Outlook2007Plugin.vsto | vstolocal'。将Visual Studio附加到Outlook不会显示任何托管代码例外。 –

+0

Manifest键看起来不错 - 你在哪里把这个清单键放在注册表(*注册表配置单元*)? – SliverNinja

回答

0

我结束了创建一个NSIS安装在那里我执行vstoinstaller无声标志安装VSTO。我还使用了一个有效的证书在vstoinstall之前的安装阶段使用有效的证书对代码进行签名并(以编程方式)将证书添加到可信存储以绕过-300错误代码。

+0

只是一个旁注,我们后来最终使用http://www.add-in-express.com/处理所有的.. VSTO废话。工作很好。 –