如何调试不会在 Windows 10 中加载的 Visio 加载项

How to debug Visio add-in that will not load in Windows 10

我有一个用于 Visio 2007 的加载项,它在 Windows 7 上运行良好,但在 运行 在 Windows 10 上无法加载相同的加载项。在Visio 的信任中心,加载项在 Windows 10 上显示为 "inactive"。加载项进入注册表,但 Visio 启动后 LoadBehavior 立即从 3 更改为 2。我理解这意味着当 Visio 尝试加载加载项时出现 运行时间错误。

此加载项是用 C# 编写的,Visual Studio 2012。已安装 VSTO 2010(需要自动接受信任中心)。也许如果我能找出 运行time 错误是什么,我就能取得进展。如何找到有关此 运行 时间错误的更多信息?在加载项代码的任何位置(包括 InternalStartup())都不会命中断点。它似乎在 运行 加载插件代码之前失败了。我设置了 Fusion 日志记录,但没有找到与 Visio 或加载项相关的消息,而且我不确定这是否是解决此问题的相关工具。我还设置了系统环境变量 VSTO_LOGALERTS = 1 和 VSTO_SUPPRESSDISPLAYALERTS = 0 但我没有看到任何警报或日志。

另一个开发人员能够 运行 从 Visual Studio 2012 年起在 Windows 10 上使用此插件,但我们无法确定该机器与我的机器有何不同。其他 Windows 10 台机器无法 运行 此加载项,因为它始终处于非活动状态 (LoadBehavior = 2)。目标是在 Windows 10 上部署此加载项,就像它已在 Windows 7.

上部署一样

我发现 AddInSpy 很有用,但它没有直接指出问题所在。 https://github.com/NetOfficeFw/AddInSpy

它向我显示了来自我的加载项的错误消息: “未找到加载项 DLL 路径” 但这不是实际问题。 (加载项的路径有效。)还有一个不同的问题导致加载项无法加载,这导致了 AddInSpy 中这条有点误导性的消息。

AddInSpy 还显示正在使用的 VSTOR 版本 = 2008。搜索 VSTOR,我发现许多版本都适用于 .NET 3.5。我的 Windows 10 机器没有安装 .NET 3.5。安装 .NET 3.5 后,加载项工作正常!

总结:AddInSpy 帮助(间接)发现加载项未加载,因为我的 Windows 10 计算机上未安装 .NET 3.5。