我使用两台计算机,一台安装了Office 2010,另一台安装了Office 2016。第一个是我的主PC。
假设我在主PC上启动了一个项目。如果我添加了对以下任何内容的引用:
Microsoft.Office.Interop.Word
(Microsoft Word 14.0 Object Library).Microsoft.Office.Interop.PowerPoint
(Microsoft Excel 14.0 Object Library).Microsoft.Office.Interop.PowerPoint
(Microsoft PowerPoint 14.0对象库)。..and然后在第二台PC上打开项目,Visual Studio将自动为它们选择适用的版本(即"Microsoft 16.0 Object Library"),因为"Embed Interop Type“属性被设置为true。
到目前为止还不错,但是当我添加一个对Microsoft.Office.Core
(Microsoft Office14.0对象库)的引用时,我无法获得相同的行为,即,当我在第二台PC上打开项目时,我发现具有相同版本( 14.0 )的引用被标记了一个图标,指示该引用缺失,同时还有警告告诉我相同的事情(找不到该引用)。
显然,如果我删除引用并将其替换为较新的版本(16.0),除了-of课程-我将不能再在主PC上打开解决方案-其他一切都可以正常工作。
所以,我的问题是:
Microsoft.Office.Core
选择合适的版本,就像Interop.Excel
、Interop.Word
等一样?请注意:
Office的主要关注点不是最终用户使用不同版本的运行应用程序(这一点以前已经问过很多次,也回答过很多次)。我更关心的是在具有不同版本的Office (这是一个WinForms application. )的辅助开发计算机上打开解决方案/项目
更新:
"C:\Windows\assembly\GAC_MSIL\Office\14.0.0.0__71e9bce111e9429c\Office.dll"
作为引用的路径。然后,无论我是否禁用/启用Embed Interop Types
属性,它仍然不能在二次开发machine.Embed Interop Types
引用的想法,而不是COM选项卡,并且仍然将Embed Interop Type
属性设置为true。实际上似乎可以工作,但我不确定如果不使用COM引用可能会有任何缺点。是吗?发布于 2018-06-02 09:26:30
您需要将互操作程序集(Microsoft Word/Excel/PowerPoint/Core 14.0对象库)复制到解决方案中的本地文件夹。然后,您可以将它们添加为引用,以便可以在两台计算机上访问它们,并且您将能够在两台计算机之间无缝地打开项目。
https://stackoverflow.com/questions/50652055
复制相似问题