无法加载程序集。 。 Interop.Word版本14.0.0.0

时间:2012-11-14 16:44:35

标签: c# winforms interop

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

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

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

2 个答案:

答案 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版本的主互操作   组装