当前位置:  开发笔记 > 开发工具 > 正文

两台不同计算机上的不同Interop引用不起作用

如何解决《两台不同计算机上的不同Interop引用不起作用》经验,为你挑选了1个好方法。

当我在计算机上添加对Microsoft.Office.Interop.Excel的引用时,Visual Studio将其添加到项目文件中:


  {00020813-0000-0000-C000-000000000046}
  1
  5
  0
  primary
  False

团队中还有另一个开发人员遇到错误并需要将一个DLL文件添加到名为Interop.Excel.dll的项目中,该项目在项目文件中用以下代码替换:


  False
  My Project\Interop.Excel.dll

这适用于我的电脑.

您能否解释两种方法之间的差异,哪种方法最好,以及如何让第一种方法在其他计算机上运行?



1> Dirk Vollmar..:

我也没有看到你的方法有问题.

通常,当您添加对组件的引用时,VS将自动为COM组件生成互操作程序集.但是,当您添加对其中一个Office组件(XP或任何更高版本)的引用时,将添加对Microsoft的预生成(和优化)主互操作程序集的引用,如第一个示例中所示.这条线

primary

表示使用此PIA.

如果您正确添加了PIA引用,则此引用的CopyLocal属性应设置为false,并且Path属性应类似于

C:\WINDOWS\assembly\GAC\Microsoft.Office.Interop.Excel\12.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll

您将在本MSDN 文章中找到有关互操作程序集的更多详细信息.

要使第一种方法正常工作,必须在计算机上安装Office主互操作程序集(PIA).Microsoft提供了可再发行版本:

Office 2003 PIA

Office 2007 PIA

AFAIK,这些PIA仅在安装.NET Framework时由Office安装程序安装,这就是为什么PIA有单独的可再发行组件的原因.

注意:确保引用您要定位的Office版本.在定位多个版本的Office时,您可能会遇到一些问题.在这种情况下的解决方案可能是后期绑定(如果性能不是问题).

推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有