从互操作转移到COM参考
目前我们有一个远程控制台执行控制台应用程序。 该控制台执行各种Excelmacros – 这些macros在Excel 2010
文件中 – 远程框已安装Excel 2010
。
我现在在我的电脑上安装了Excel 2013
,并在我们的一个xl文件中添加了一些function。 这不是通过控制台运行。
控制台有一个对Microsoft.Office.Interop.Excel 14.0.0.0
和本程序内的引用使用以下内容:
using Excel = Microsoft.Office.Interop.Excel; ... ... Excel.Application excelApp = null; ... ... excelApp = new Excel.Application();
我相信这将需要改变。 希望我正在阅读@HansPassant(参考: 我仍然可以使用Office 2013的Microsoft.Office.Interop程序集? )正确,但我需要:
- 将引用删除到
Microsoft.Office.Interop.Excel v14.0.0.0
- 添加对
Microsoft Excel 15.0 Object Library v1.8
的引用
如果我做了这个改变,控制台能够在Excel 2010
和Excel 2013
文件中运行macros吗?
一旦我从interop
移动到这个COM
参考,上面的代码片断将如何改变?
我只是坚持旧的互操作程序集。 但在参考集的属性内
- 特定版本= false
- embedded互操作types = true
这应该创build一个程序集,它只包含实际使用代码的方法和types。 在启动时,它试图find一个名字相同的程序集,但是取得了最高版本(因此特定的版本是错误的),并且从你的types到该程序集中的types。
因此,如果您只使用旧版本中已有的Excelfunction,则应该可以使用Excel 2003,2007。