2

我有一个用 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 获得的引用列表中没有这样的选项。

我是否需要较旧的参考资料?如果可以,我在哪里可以找到它?

或者,如果我还有其他需要考虑的事情,请告知。

4

2 回答 2

6

请注意,.NET 框架 4.0 支持嵌入式主互操作程序集 (PIA)。您可以通过将“嵌入互操作类型”设置为“真”来在 Microsoft.Office.Interop.Word 参考上启用它。
有关这方面的更多信息,请参阅http://msdn.microsoft.com/en-us/library/dd997297(v=vs.100).aspx

支持多个 Office 版本的另一种方法是使用这样的库:http: //netoffice.codeplex.com/
该库通过 COM 互操作使用后期绑定调用,根本不需要使用主互操作程序集。

于 2012-11-14T17:45:29.710 回答
0

是的,您应该参考 2007 PIA,因为它们适用于 Office 2007 和 Office 2010。通常,您应该参考您将支持的最旧版本的 Office 的 PIA。

您可以从此处下载 Office 2007 PIA

来自MSDN

在全局程序集缓存中安装和注册 Office PIA(使用 Office 或通过安装 PIA 的可再发行包)时,绑定重定向程序集也仅安装​​在全局程序集缓存中。这些程序集有助于确保在运行时加载正确版本的主互操作程序集。例如,当引用 2007 Microsoft Office 主互操作程序集的解决方案在具有相同主互操作程序集的 Microsoft Office 2010 版本的计算机上运行时,绑定重定向程序集指示 .NET Framework 运行时加载 Microsoft Office 2010 版本的主要互操作程序集。

于 2012-11-14T16:53:49.640 回答