C# 未检测到Outlook加载项

C# 未检测到Outlook加载项,c#,outlook,vsto,outlook-addin,C#,Outlook,Vsto,Outlook Addin,我开发了一个outlook AddIn,我对它进行了测试,它第一次出现后就消失了(我认为这是因为我将LoadBehavior设置为16,所以我将其更改为3) 然后它对我和其他一些人起了很好的作用。但对于其他一些人来说,加载项在那之后甚至没有出现在Outlook中,就好像它没有安装一样 1-登记册是正确的 2-loadBehavior为3,它不会更改为2 3-outlook加载项未列在活动、非活动或禁用的加载项中 4-在注册表的禁用加载项项项中没有该项的记录 5-它工作的唯一方法是启动.VSTO文

我开发了一个outlook AddIn,我对它进行了测试,它第一次出现后就消失了(我认为这是因为我将LoadBehavior设置为16,所以我将其更改为3)

然后它对我和其他一些人起了很好的作用。但对于其他一些人来说,加载项在那之后甚至没有出现在Outlook中,就好像它没有安装一样

1-登记册是正确的

2-loadBehavior为3,它不会更改为2

3-outlook加载项未列在活动、非活动或禁用的加载项中

4-在注册表的禁用加载项项项中没有该项的记录

5-它工作的唯一方法是启动.VSTO文件。.msi安装没有启用它

在实际工作的机器上:

outlook版本为2013

操作系统是Windows7x64

.Net框架4

这是所有机器的相同配置。 我还查看了Fusion日志查看器,没有任何内容与我的插件相关。这就像没有检测到外接程序或没有将其视为外接程序一样。
你知道为什么会出现这种情况和/或如何解决吗

您确定您的MSI文件和DLL以Outlook的正确位为目标吗

您说过它在x64安装上工作,您确定它是为这两种目的编译的吗


没有使用太多VSTO的东西,但我认为您可能需要对代码进行填充

您是否有机会在Outlook中查看COM加载项列表。您的加载项是否已列出

如果是这样,可能有几个原因:

  • 宿主应用程序(在您的情况下是Outlook)可以禁用外接程序。Microsoft Office应用程序可以禁用行为异常的加载项。如果应用程序未加载外接程序,则应用程序可能已硬禁用或软禁用外接程序
  • 当外接程序导致应用程序意外关闭时,可能会发生硬禁用。如果在外接程序中的启动事件处理程序正在执行时停止调试器,则在开发计算机上也可能发生这种情况

    当外接程序产生不会导致应用程序意外关闭的错误时,可能会发生软禁用。例如,如果应用程序在启动事件处理程序执行时引发未经处理的异常,则可能会软禁用外接程序

    重新启用软禁用的外接程序时,应用程序会立即尝试加载该外接程序。如果最初导致应用程序软禁用外接程序的问题尚未解决,则应用程序将再次软禁用外接程序。在MSDN的文章中阅读更多关于这方面的内容

  • 如果在活动外接程序列表中看到外接程序,则功能区UI中会出现错误。有关更多信息,请参阅

  • 最后,如果在列出的COM外接程序中没有看到该外接程序,则说明您没有在windows注册表中正确注册它。请参阅MSDN中的文章,其中描述了部署Office加载项所需的所有步骤

    我知道你没有代表评论,但这不应该是一个答案。@RonBeyer我很抱歉,我的意思是这是一个作为评论的问题。谢谢。你的回答帮了我很大的忙,为我节省了时间。稍后我会写一封回复信,解释出现了什么问题以及原因。我的问题是,当用户在x64位操作系统上运行x64 Office版本时,缺少注册表。我一直在关注,但在任何时候都没有提到我遇到的问题,也没有提到当目标机器在x64位操作系统上运行office x86时,应该有一个Wow6432Node注册表项。我真的不想躲在这样的借口后面,但是MS文档应该更一致,传播更少。我必须通过不同的教程来找到一个完整的实用指南。