【发布时间】:2015-12-24 17:23:12
【问题描述】:
我在 Visual Studio 2010 中开发了一个 Excel VSTO 加载项。它在 Windows 7+ 和 Excel 2007+ 的不同组合上运行良好,但无法在 Windows XP 和 Excel 2007 上加载,并出现非信息性“运行时错误”在加载 COM 加载项期间发生”消息。 VSTO_SUPPRESSDISPLAYALERTS=0 和 VSTO_LOGALERTS=1 不产生任何数据。
使用 API Monitor 和 Dependency Walker 调试后,发现如下。为了加载加载项,Excel 加载 C:\Program Files\Common Files\Microsoft Shared\VSTO\10.0\VSTOLoader.dll。该库从C:\Windows\System32\Version.dll 导入GetFileVersionInfoEx 函数,该函数仅从Vista 开始可用。因此,甚至没有尝试加载我的加载项 DLL,因为该过程在加载 VSTO 运行时很早就失败了。
关于如何解决这个问题的任何想法?我错过了一些依赖吗?这是我目前安装的:
- .NET 2.0 SP2
- .NET 3.5 SP1
- .NET 4.0
- Office SP3
- VSTO 2010 运行时来自http://www.microsoft.com/en-us/download/details.aspx?id=48217
- 来自http://www.microsoft.com/en-us/download/details.aspx?id=18346的PIA
【问题讨论】:
标签: vsto windows-xp dependency-walker apimonitor