VSTO Addin for Outlook无法正常工作

时间:2016-06-28 15:05:54

标签: vb.net outlook vsto outlook-addin outlook-2007

我看过很多帖子和网站都解决了这个问题。我已经尝试了我找到的所有解决方案,但没有一个能够正常工作(我现在已经试图解决这个问题了好几天)。我看过很多帖子都有同样的问题,但要么解决方案对我不起作用,要么不适用。随着那说......

我有一个Outlook 2007加载项,旨在将文本添加到电子邮件的标题和正文中。它是为使用.msi文件的所有用户安装的。我去年部署的旧版本工作正常。我创建的新版本只有一些小的输入/输出更改,没什么大不了的。这个新版本在我的开发计算机上完全适用于Visual Studio和实际安装的调试。但是,我不能让它在非开发计算机上工作。以下是程序和目标计算机的详细信息(开发计算机和目标计算机的详细信息除了目标计算机没有Visual Studio之外):

-Using Visual Studio Professional 2013
-Written in Visual Basic
-Target Framework is .NET 4.0
-The add-in is only run once the "send" button on an email is clicked.
-Outlook version is Outlook 2007
-Operating system is Windows 7 Enterprise SP1 32-bit

问题是加载项不会加载到目标计算机上(是的,我知道,其他人也有同样的问题)。正如我之前所说,它在我的计算机上可以在调试和安装版本中正常工作。这让我觉得另一台计算机丢失了一些东西,所以我尝试将.NET 4.0框架安装到目标计算机上,但它告诉我它已经安装好了。我跑过了我能想到的一切,无法使用它。以下是它的表现:

-Installs fine with no errors.
-HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Office/Outlook/Addins/EmailMarkTool/LoadBehavior = 3 after installation.
-VSTO_LOGALERTS = 1
-VSTO_SUPPRESSDISPLAYALERTS = 0
-Outlook opens with no apparent errors.
-LoadBehavior = 0 immediately after Outlook is opened.
-Shows up in the Add-ins under "Inactive Application Add-ins."
-Never shows up under "Disabled Add-ins."
-In the "COM Add-Ins" dialog where I can check which add-ins to use, it shows the correct directory and the Load Behavior is "Unloaded."
-The add-in can be checked. When I click "OK" I don't get any errors. When I go back to the Add-ins, it is unchecked and "Unloaded" again.
-Setting the LoadBehavior to 3 doesn't help because it goes back to 0 as soon as Outlook is started again.
-I inserted a try-catch block into the New() function of the add-in that has a MsgBox pop-up and a Throw.
-I get absolutely no errors anywhere.
-No log file is generated.

我尝试过多次卸载,重建和重新安装,但结果相同。我只是无法弄清楚它为什么会在我的开发计算机上工作,而不是目标计算机。感谢阅读所有这些。我知道很多,但我需要了解细节。提前感谢任何输入!

[更新]:我刚刚创建了一个全新的最小插件,只是为了测试它是否可行但是得到了相同的结果。

2 个答案:

答案 0 :(得分:1)

我发现了问题!

问题可能是Outlook 2007独有的。事实证明,Microsoft Office 2007 SP1和SP2有一个错误,导致它无法运行VSTO插件。 Microsoft发布了修复此问题的修补程序(https://support.microsoft.com/en-us/kb/976477)。这已添加到Microsoft Office SP3的发行版中。但是,要激活此修复程序,必须创建一个新的注册表标志,但该修复程序不会自动完成,使得该修复程序无效,直到您手动激活它(说明并下载here)。所以......

要在Outlook 2007中启用VSTO插件,您必须向此注册表添加一个子项:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Common\General\ 并添加一个DWORD" EnableLocalMachineVSTO"将值设置为1。

我做了这个,重新启动计算机,第23次安装了我的插件,它安装并运行完美!不过,我不确定以前的版本是如何工作的。我们的系统管理员可能会删除该子项,以便在某些时候加强安全性。

答案 1 :(得分:0)

您遇到的loadbehaviour密钥问题很奇怪。虽然我认为这可能不是你的解决方案,但它可能是,所以值得一试。

目标计算机需要安装用于办公室运行时的VSTO工具。 您可以通过以下链接下载这些工具 - https://www.microsoft.com/en-GB/download/details.aspx?id=48217