我编写了一个.NET加载项,它引用了版本12的office互操作程序集(office 2007)。当我在具有版本14的interop的计算机上加载加载项时,office成功加载此版本(它重定向到office 14)。
但是(这就是问题),在某些机器上它仍然需要版本12,尽管版本14存在。放置版本12修复了这些机器上的问题,但为什么会发生这种情况???
答案 0 :(得分:0)
确保您不使用后续Office版本(2010及更高版本)中引入的方法和属性。因此,您将确保您的加载项不会在运行时触发异常。
Running Solutions in Different Versions of Microsoft Office页面说明了以下内容:
使用Visual Studio 2013,Visual Studio 2012或Visual Studio 2010创建的解决方案可以在Office 2013,Office 2010或2007 Microsoft Office system中运行。但是,该解决方案只能使用Office的所有三个版本中提供的那些功能和API。
但是(这就是问题),在某些机器上它仍然需要版本12,尽管版本14存在。放置版本12修复了这些机器上的问题,但为什么会发生?
加载项不应该依赖于安装的PIA。您只需将所需的PIA包含到安装程序中,并使用最低Office版本中提供的API。这就是全部。