未显示自定义Outlook加载项

时间:2017-03-06 13:02:09

标签: c# outlook vsto add-in

我有使用VSTO开发的outlook外接程序,并且使用Visual Studio Installer安装了外接程序。安装后我可以在outlook中看到安装了自定义加载项(在File-Option-Add-Ins中可见,当然也是允许的),但它没有显示在功能区中。当我在VS中运行项目时,我可以看到Outlook正在启动,它在调试器处停止。

Outlook AddIn Settings

http://pastebin.com/cWrfUSa8 - 这是初始化功能区,标签和按钮时的部分。当调试器打开时,代码也会停在那里。请注意,功能区是使用设计师方式而不是xml生成的。

我已经在SO上检查了这个问题,并且LoadBehaviour regkey正在从2更改为3。 Not Showing Outlook Addin

regedit settings

我还根据此Not Showing Outlook Addin启用了环境变量,但显示了任何错误。

在事件查看器中进行了一些挖掘之后我发现了这个:

> Outlook disabled the following add-in(s):



> ProgID: Tieto.MRS.OutlookAddin2013
GUID: {00000000-0000-0000-0000-000000000000}
Name: Tieto.MRS.OutlookAddin2013
Description: Tieto.MRS.OutlookAddin2013
Load Behavior: 3
HKLM: 0
Location: file:///c:/_hg/tieto.meetingroomselector/main/source/tieto.mrs.outloookaddin2013/tieto.mrs.outlookaddin2013/tieto.mrs.outlookaddin2013/bin/release/tieto.mrs.outlookaddin2013.vsto|vstolocal
Threshold Time (Milliseconds): 1000
Time Taken (Milliseconds): 1063
Disable Reason: This add-in caused Outlook to start slowly.
Policy Exception (Allow List): 0 

让我们忽略可笑的短暂时间并继续我的故事 - >关注此帖子https://support.microsoft.com/en-us/help/2733070/no-add-ins-loaded-due-to-group-policy-settings-for-office-2013-and-office-2016-programs 我已经修改了注册表,并且Outlook中的UI已经在File - >中发生了变化。慢速和已禁用的COM加载项

Outlook UI

但在outlook中显示加载项仍然没有运气。我现在不在乎。

修改 我很好奇为什么事件日志显示的时间与Outlook的UI不同。假设事件日志说实话,我已经在几个位置添加了多线程(功能区初始化,配置加载等),事实日志中的警告确实消失了。

但不幸的是,仍然没有运气。

Outlook loaded the following add-in(s):
Name: Tieto.MRS.OutlookAddin2013
Description: Tieto.MRS.OutlookAddin2013
ProgID: Tieto.MRS.OutlookAddin2013
GUID: {00000000-0000-0000-0000-000000000000}
Load Behavior: 3
HKLM: 0
Location: file:///C:/_Hg/Tieto.MeetingRoomSelector/Main/Source/Tieto.MRS.OutloookAddin2013/Tieto.MRS.OutlookAddin2013/Tieto.MRS.OutlookAddin2013/bin/Release/Tieto.MRS.OutlookAddin2013.vsto|vstolocal
Boot Time (Milliseconds): 281

EDIT2

按照这个简单的guide创建了一个新项目 像以前一样的场景。安装了加载项,允许但不显示。

EDIT3

注意到事件查看器中的GUID为零且HKLM为0.其他加载项具有有效的guid和HKLM:1

1 个答案:

答案 0 :(得分:2)

未显示加载项是由于ThisAddIn.cs

中缺少覆盖引起的
protected override Office.IRibbonExtensibility CreateRibbonExtensibilityObject()
{
    return new Ribbon1();
} 

需要使用xml生成功能区而不是设计人员才能应用此解决方案。 guid中的空值没有解决,HKLM也没有解决:但是加载项现在显示在Outlook中。