Outlook 只是在调试 VSTO 加载项时挂起

本文关键字:加载项 挂起 VSTO 调试 Outlook | 更新日期: 2023-09-27 18:35:41

我正在使用Visual Studio 2013并尝试开发一个C# Outlook Add-In项目,以便在我的企业雇主那里安装Outlook 2013客户端。

什么可能导致Outlook无法完全加载,即按 F5 通过VS IDE开始调试我的应用程序时,Outlook初始屏幕加载一秒钟,但Outlook从未实际加载。通过任务管理器,我能够看到在后台运行的Outlook进程,但它从未实现为应用程序进程。

我已经完成了以下操作:在项目的"属性"页中,我Outlook.EXE本地路径设置为"启动外部程序",并设置了工作目录。

当我运行我的代码"启动而不调试"时,Outlook确实会加载并且我可以运行我的Outlook Add-In,但我无法逐步完成我的代码,这当然是无价的。

关于我应该寻找什么的任何想法?

更新:

根据@Sarvesh的回答,我创建了一个新的Outlook加载项项目,没有设置任何属性,只有一行代码,如图所示,并且仍然具有相同的行为:

private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
    Console.Writeline("ThisAddIn_Startup was called...");
}

Outlook 只是在调试 VSTO 加载项时挂起

在项目的"属性"页中,我已将 Outlook 的本地路径设置为 启动外部程序并设置工作目录。

为什么要设置这些?

如果使用 VS 提供的模板开发 VSTO 加载项,则无需手动设置这些属性。

将其设置回默认值,然后设置"调试"。

请注意,只能同时运行一个 Outlook 实例。因此,首先在开始项目之前.exe查看Outlook正在运行的进程列表。只有这样,您才能在调试器下启动外接程序。

此外,我建议禁用Outlook中的所有其他加载项。Outlook 可能会禁用加载需要大量时间的加载项。尝试使用新创建的空外接程序项目重现该问题。将断点设置为启动事件处理程序,并在调试器下运行它。行得通吗?

Outlook 2013 监视加载项性能指标,例如加载项启动、关闭、文件夹切换、项目打开和调用频率。Outlook 记录每个性能监视指标的已用时间(以毫秒为单位)。

例如,启动指标测量每个连接的外接程序在 Outlook 启动期间所需的时间。然后,Outlook 计算 5 次连续迭代的中值启动时间。如果中位数启动时间超过 1000 毫秒(1 秒),则 Outlook 将禁用外接程序,并向用户显示外接程序已被禁用的通知。用户可以选择始终启用外接程序,在这种情况下,即使外接程序超过 1000 毫秒的性能阈值,Outlook 也不会禁用外接程序。

确保加载项始终处于启用状态。

有关详细信息,请参阅保持外接程序启用的性能标准。

我最近遇到了同样的问题 - 我通过在 Outlook 中构建和安装插件来解决它,该插件在启动时会引发错误并弹出异常。

最后,我的问题的解决方案是在名为 EnableVSTOLocalUNC 的 64 位配置单元中创建一个名为 [HKEY_LOCAL_MACHINE'SOFTWARE'Microsoft'Vsto Runtime Setup'v4] 的值00000001(作为 dword)的注册表项。

以下是安装插件后可能会遇到的其他一些潜在问题。