我在 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
- 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
最佳答案
我也遇到了这个麻烦的问题。
对于我们这些仍在 XP 上支持客户端的用户,您仍然可以使用以前的版本 VSTO 10.0.50903 而不会出现此问题。
虽然 Microsoft 隐藏了旧的下载详细信息页面,但您仍然可以在这个非常深的链接中找到之前的版本:
http://download.microsoft.com/download/C/0/0/C001737F-822B-48C2-8F6A-CDE13B4B9E9C/vstor_redist.exe
有趣的是,新的 VSTO 10.0.60724 版本的系统要求仍然注意“Windows XP (x86) with Service Pack 3 - all editions except Starter Edition”是仍然是受支持的操作系统。正如您所指出的,这是不正确的。
关于Windows XP SP3 上的 VSTO 2010 运行时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32806546/