我有一个用C#编写的WinForms应用程序,可以在Word中自动生成字母。该应用程序适用于安装了Office 2010的客户端计算机,但不适用于安装了Office 2007的计算机,而是收到以下错误消息 -
could not load file or assembly 'Microsoft.Office.Interop.Word version=14.0.0
我怀疑我需要添加对旧版Interop.Word的引用,例如version = 12,但可通过Visual Studio在引用列表中没有这样的选项。
我是否正确需要较旧的参考资料?如果可以,我可以在哪里找到它?
如果还有其他需要我考虑的事情,请告知。
答案 0 :(得分:6)
请注意,.NET framework 4.0支持嵌入式主互操作程序集(PIA)。 您可以通过设置'嵌入互操作类型'来在Microsoft.Office.Interop.Word参考上启用它。到了' True' 有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/dd997297(v=vs.100).aspx。
支持多个Office版本的另一种方法是使用这样的库:
http://netoffice.codeplex.com/
该库通过COM互操作使用后期绑定调用,并且根本不需要使用主互操作程序集。
答案 1 :(得分:0)
是的,您应该参考2007 PIA,因为它们将对Office 2007和Office 2010起作用。一般来说,您应该参考您将支持的最旧版Office的PIA。
您可以从here
下载Office 2007 PIA来自MSDN:
在全局程序集中安装和注册Office PIA时 缓存(使用Office或通过安装可再发行组件包 对于PIA),绑定重定向程序集也仅安装 在全局程序集缓存中。这些程序集有助于确保 在运行时加载主互操作程序集的正确版本 时间。例如,当一个引用2007 Microsoft的解决方案时 Office主互操作程序集在具有该计算机的计算机上运行 Microsoft Office 2010版本的相同主互操作程序集, 绑定重定向程序集指示.NET Framework运行时 加载Microsoft Office 2010版本的主互操作 组装