2016-06-28 85 views
2

我见过很多可解决此问题的帖子和网站。我已经尝试了我找到的每个解决方案,但没有一个能够工作(我一直试图解决这个问题)。我看过很多帖子都有相同的声音问题,但是这个解决方案对我来说并不适用,或者不适用。这就是说...VSTO Addin for Outlook无法正常工作

我有一个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 

的问题是,在添加 - 在目标计算机上不会加载(是的,我知道,其他bazillion其他人也有同样的问题)。正如我之前所说的,在调试和安装版本中,它在我的电脑上都能正常工作。这让我觉得其他计算机缺少一些东西,所以我尝试将.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. 

我试着卸载,重建,并重新安装多次都具有相同的结果。我只是不知道为什么它可以在我的开发计算机上工作,但不是目标计算机。感谢您阅读所有这些内容。我知道这很多,但我需要了解详情。预先感谢您的任何意见!

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

+0

不知道你是否看着这个http:// stackoverflow。com/questions/4668777/how-to-trouble-trouble-a-vsto-addin-that-does-not-load但它可能有帮助。 –

+0

@JimHewitt是的,我多次阅读那一个。我的加载项从未显示在禁用的加载项中。 – ajlampman

+0

我猜你已经看到这也https://www.outlook-apps.com/inactive-outlook-add-ins/,但以防万一,有一节“启用不活动的Outlook加载项继续被卸载: –

回答

1

我发现问题了!

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

为了使VSTO加载项在Outlook 2007中,你有一个子项添加到此注册表:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Common\General\ 并添加一个DWORD“EnableLocalMachineVSTO”设置为1

我这样做的价值,重新启动计算机以获得更好的性能,第23次安装了我的插件,并安装并完美运行!不过,我不确定以前的版本是如何工作的。我们的系统管理员可能会删除该子项以加强安全性。

0

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

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

+0

我也这么想过。我尝试手动安装VSTO运行时,但我收到一条消息,说它已经安装。考虑到我们的所有计算机上都安装了附加组件,这很有意义。我无法让这个新的工作。 – ajlampman

+1

尝试在注册表中添加一个Resiliency项,它将告诉Outlook始终加载并启用加载项。 HKEY_CURRENT_USER/Software/Policies/Microsoft/office/15.0/outlook/resiliency/addinlist /(在此处添加字符串值= 1) “字符串值”是您添加的名称,它出现在项目中。 –

相关问题