.net - 如何解决 VSTO 插件无法加载的问题?

标签 .net vsto outlook-addin

我的 VSTO Outlook 加载项在一台客户计算机上突然停止工作(无法加载,没有错误消息),并且我陷入了故障排除的困境。该机器是 Windows 7 x86、Outlook 2007。该加载项是用 Visual Studio 2008 编写的,并使用 VSTO 2005 和 2003 PIA(因为我们还需要支持 Outlook 2003)。它在其他机器上运行得很好。

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

什么都没有。如果没有给出任何原因指示,加载项就不会加载。我还检查了“常见问题”(CAS 策略、安装的 PIA、注册表中的 LoadBehavior、重新安装 VSTO 和加载项)。

其他一些观察结果:

    注册表中的
  • LoadBehavior 保持在3
  • 该加载项在 Outlook 中显示为“已禁用”。在“COM 加载项”中选中其复选框不会执行任何操作(没有错误,第二次输入表单时会再次清除该复选框)。
  • 它在其他客户机器上运行得很好,在这台机器上也运行得很好。 (不,客户无法告诉我他的机器上发生了什么变化。)
  • 我的代码最顶部有一条 Trace.WriteLine 消息(ThisAddIn_Startup 处理程序中的第一行),但未到达该消息(我检查了 DebugView ) 。因此,未加载的原因不是我的加载项中的异常,而是 VSTO 加载加载项失败或 Outlook 加载 VSTO 失败。

我真的很想强制 Outlook 和/或 VSTO 告诉我出了什么问题,而不是更多的随机调试(“试试这个...”、“试试那个...”) ,即在尝试启用加载项时向我提供有用的错误消息,而不是什么也不做。有任何想法吗?

最佳答案

以下是 RobertG5 解决方案的更多详细信息(太长,无法发表评论):

问题在于该加载项已被 Outlook 硬禁用。据我所知,这与“通常”的未加载场景不同。实现这一点的关键是要注意该加载项没有显示在非事件应用程序加载项下,而是显示在禁用的应用程序加载项下。这很重要:在后一种情况下,只需转到 COM-AddIn 屏幕并勾选复选框就不会执行任何操作。 (我想一个不错的消息框“您无法加载此加载项,因为它已被硬禁用”会要求太多......叹息。)

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

  1. 管理框中,将COM 加载项更改为禁用的加载项,然后单击“转到”。
  2. 选择该加载项并点击启用。点击关闭

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

  1. 管理框中,将禁用的加载项更改为COM 加载项,然后单击“转到”。
  2. 选中已禁用的加载项旁边的复选框。点击确定

引用:http://msdn.microsoft.com/en-us/library/ms268871.aspx

关于.net - 如何解决 VSTO 插件无法加载的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4668777/

相关文章:

c# - 如何根据唯一标识符动态创建安装文件?

c# - 扩展 .NET 类型系统,以便编译器在某些情况下强制执行原始值的语义

c# - 如果存在指向 C# 的免费 Excel "helper"类库的任何链接怎么办?

c# - 通过功能区代码隐藏在 Word 中打开文件

.net - Excel 从两个不同的 AppDomain 调用 .NET 自动化服务器?

sql-server-2008 - 如何使用 Outlook 插件 2007 和 VSTO c# 在 mailItem Body 中获取选择

c# - 在 Outlook 2007 中获取当前用户的电子邮件地址

c# - 如何通过标准网络服务之一将文件上传到 SharePoint 库

.net - 从 actionscript 调用 .net dll 函数

.net - 将我的应用程序转换为 .Net 真的是个好主意吗?