如何解决不加载的VSTO插件?

我的VSTO Outlook加载项突然停止在一个客户机器上工作(它不加载,没有错误信息),我坚持排除故障。 该机器是Windows 7 x86,Outlook 2007.该加载项是使用Visual Studio 2008编写的,并将VSTO 2005与2003 PIA一起使用(因为我们还需要支持Outlook 2003)。 它在其他机器上工作得很好。

以下是我试图获得有用的故障排除输出:

  • 添加VSTO_SUPPRESSDISPLAYALERTS环境variables(设置为0 ) 。
  • 用pipe理权限启动Outlook。
  • 看看事件日志。

没有。 加载项只是不会加载没有给出任何迹象的原因。 我也检查了“通常的嫌疑犯”(CAS政策,PIA安装,LoadBehavior在registry中,重新安装VSTO和加载项)。

其他一些观察:

  • registry中的LoadBehavior保持在3
  • 该加载项在Outlook中显示为“禁用”。 在“COM加载项”中检查其checkbox只是不做任何事情(没有错误,当再次input表单时,checkbox被再次清除)。
  • 它在其他客户机器上工作得很好,而且在这台机器上工作得很好。 (不,客户不能告诉我他的机器上发生了什么变化)
  • 我有一个Trace.WriteLine消息在我的代码的最上方( ThisAddIn_Startup处理程序的第一行),没有达到(我用DebugView检查)。 因此,不加载的原因在我的加载项中不是例外,而是VSTO加载加载项或加载VSTO的失败。

而不是更多的随机debugging(“试试这个…”,“试试…”),我真的想强迫Outlook和/或VSTO告诉我什么是错的 ,即给我一个有用的错误信息,而不是试图启用加载项时什么也不做 。 有任何想法吗?

你有没有尝试再次启用加载项? 它在禁用队列之后不会运行。 从禁用的加载项屏幕重新启用后,您可以选中COM-AddIn屏幕中的框来加载它,然后应该提示您更多的细节,因为您将VSTO_SUPPRESSDISPLAYALERTSvariables设置为关于可能发生在第一名。

以下是RobertG5解决scheme的更多细节(太长的评论):

问题是,加载项已被硬禁用 Outlook。 据我所知,这是不同于“平常”的非加载情况。 实现这一点的关键是注意,加载项没有出现在非活动应用程序加载项下,而是在禁用的应用程序加载项下 。 这是有区别的:在后一种情况下,只要进入COM-AddIn屏幕并勾选checkbox就什么也不做。 (我想一个很好的消息框“你不能加载这个加载项,因为它已经被硬禁用”将是太多的问… 叹了口气 。)

那么,如何重新启用硬禁用加载项呢?

  1. pipe理框中,将COM加载项更改为已禁用的加载项 ,然后单击开始。
  2. select加载项并单击启用 。 点击closures

好了,现在可以再次加载加载项:

  1. pipe理框中,将禁用的加载项更改为COM加载项 ,然后单击开始。
  2. 选中禁用加载项旁边的checkbox。 点击OK

参考: http : //msdn.microsoft.com/en-us/library/ms268871.aspx

我知道这是旧的,但由于各种原因,我最近解决Office加载项不加载。

它咀嚼堆积的时间,所以我想我会分享,所以如果你的加载项不会加载或不可见或其他,请尝试这些解决scheme。

1)。 加载项未加载。

未加载。 加载COM加载项期间发生运行时错误。

在这里输入图像描述

问题是由于缺less.Net框架3.5或4.0。

注意:在x64上,我只需要.Net 4.0,但是在x86 PC上,安装.Net 4.0后出现错误。 按照这篇文章,我安装了.NET 3.5,然后在x86 PC上运行。

2)。 加载项未加载。

请仔细检查您是否正确拼写了registry项。 偶尔我input行为,但在美国拼写行为,所以仔细检查“LoadBehavior”

在这里输入图像描述

另请确保“LoadBehavior”为3,有关值的列表,请参阅http://msdn.microsoft.com/zh-cn/library/vstudio/bb386106.aspx#LoadBehavior

3)。 加载项不可见。

通过转到Excel>文件>选项>加载项>selectpipe理下拉列表并将其设置为COM加载项>单击开始,可以使加载项可见​​。 在“COM加载项”对话框中,确保加载项被打勾。

4)。 加载项被禁用。

或者,加载项可能被隐藏,因为它已被禁用。 您可以通过转到Excel>文件>选项>加载项>selectpipe理下拉列表并将其设置为禁用,然后单击开始启用加载项。 select已禁用的加载项,然后单击“启用”。

在这里输入图像描述

5)。 ExcelDNA用户定义公式无法正确显示

而不是看到您看到的单元格值:#NAME?

设置以下registry项:

  HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\options\OPEN: 

有了正确的价值:

  /R "C:\Program Files\XYZ\XYZ Addin\ExcelDNA.XYZAddIn.xll" 

6)。 显示一个消息框后Excel HANGS

打开应用程序设置:

  xlApp.ScreenUpdating = true; xlApp.DisplayAlerts = true; xlApp.Calculation = XlCalculation.xlCalculationAutomatic; xlApp.UserControl = true; xlApp.EnableEvents = true; 

7)。 进一步的疑难

通过在您的系统环境variables中添加以下内容来启用您的VSTO日志文件:

 NAME: VSTO_LOGALERTS VALUE: 1 

有可能是一个exception错误,这就是为什么你的加载没有加载。

你可以查看这个源代码获取关于VSTO日志和警报的更多信息 ,但是实际上你可以根据你需要做的改变两个环境variables值:

显示VSTO警报提示

要在消息框中显示每个错误,请将VSTO_SUPPRESSDISPLAYALERTSvariables设置为0(零)。 您可以通过将variables设置为1(1)来抑制消息。

将VSTO警报logging到日志文件

要将错误写入日志文件,请将VSTO_LOGALERTSvariables设置为1(1)。

Visual Studio Tools for Office在包含应用程序清单的文件夹中创build日志文件。 默认名称是.manifest.log。 要停止logging错误,请将variables设置为0(零)。

我build议使用Microsoft工具来诊断名为AddinSpy的加载项问题。

这里还有另一种可能性,即使设置了上面提到的环境variables,为什么你还没有得到任何反馈。 我发现,如果安装后出现此错误(而不是以前的VSTO),则还应该仔细检查registry和“Manifest”条目(如果有)。

尽pipeJeremy Thompson在他的第二个要点中指出了registry,但是他没有显示可能成为registry设置一部分的Manifest条目。 如果您的Manifest条目没有指向正确的path和文件,它将显示在加载项列表中,并显示“未加载”条目。

在这里,我们看到一个坏的条目,只是指向VSTO文件,没有path。 在这里输入图像描述

这将导致你的AddIn看起来像加载了错误,但是没有错误出现并显示给你,让事情变得令人沮丧。 因此,它将如下所示,注意下面的位置条目也不显示path。 在这里输入图像描述

通过与文件名一起放入正确的path来更正条目,并修复此问题。

我认为没有错误是因为你最初没有指向任何东西,所以它列出了AddIn,因为它在registry中,即使没有任何东西需要加载。

最后我哄着Word告诉我:

  Microsoft.VisualStudio.Tools.Applications.Runtime.CannotCreateStartupObjectException: Could not create an instance of startup object blaghblagh ---> System.TypeInitializationException: The type initializer for 'foo' threw an exception. ---> System.IO.FileNotFoundException: Could not load file or assembly 'blah' or one of its dependencies. The system cannot find the file specified. 

之后,感谢[1],FusLogvw很快为我解决了这个问题。

[1] 无法加载文件或程序集或其依赖项之一

对我很有趣,我尝试了一次重启。 为我修好了。 然而,它为我修复的原因是,我有一个stream氓Excel.exe运行隐藏。 插件没有启动,因为这个其他的Excel应用程序正在运行(我正在将一个MSAccess应用程序迁移到VSTO),所以Access有一个隐藏的自动化应用程序。

总之,如果你的插件没有启动,快速检查是确保没有其他Excel应用程序正在运行。 这当然只适用于当你试图获得一个新的安装/运行。

(我用这个链接) https://www.add-in-express.com/creating-addins-blog/2012/11/13/wix-installation-vsto-office-addin/