我在 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
. 该库从 导入GetFileVersionInfoEx
函数C:\Windows\System32\Version.dll
,仅从 Vista 开始可用。因此,甚至没有尝试加载我的加载项 DLL,因为该过程在加载 VSTO 运行时很早就失败了。
有想法该怎么解决这个吗?我错过了一些依赖吗?这是我到目前为止安装的内容:
- .NET 2.0 SP2
- .NET 3.5 SP1
- .NET 4.0
- 办公室 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