从互操作转移到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程序集? )正确,但我需要:

  1. 将引用删除到Microsoft.Office.Interop.Excel v14.0.0.0
  2. 添加对Microsoft Excel 15.0 Object Library v1.8的引用

如果我做了这个改变,控制台能够在Excel 2010Excel 2013文件中运行macros吗?

一旦我从interop移动到这个COM参考,上面的代码片断将如何改变?

我只是坚持旧的互操作程序集。 但在参考集的属性内

  • 特定版本= false
  • embedded互操作types = true

这应该创build一个程序集,它只包含实际使用代码的方法和types。 在启动时,它试图find一个名字相同的程序集,但是取得了最高版本(因此特定的版本是错误的),并且从你的types到该程序集中的types。

因此,如果您只使用旧版本中已有的Excelfunction,则应该可以使用Excel 2003,2007。