C#中的COM Interop问题

时间:2011-04-25 07:53:14

标签: c# com-interop

您好我有一个应用程序,其中一个作业将从Excel文件中获取所有记录,并且我正在使用COM Interop。

所以这很好用,它正在做我真正想要的。问题是如果我们在项目中添加对库版本14.0(Office 2010)的引用,但是如果我们选择我们的应用程序,并且如果我们在具有不同版本的Office 2010的任何PC中运行它,他将无法识别库因为它有不同的版本(例如Office 2007 - versioan 12.0)。

所以有什么方法可以避免这种情况?

提前致谢!

3 个答案:

答案 0 :(得分:2)

我认为如果你使用后期绑定并使用版本独立的progid。

答案 1 :(得分:1)

如果只需要读取excel以外的excel文件,我建议使用第三方完全托管的库,如“Spreadsheet Gear”或“GemBox”,它们更快更容易使用。 (有开源xls xlsx格式的开源xls解析器和库,但我没有对它们进行测试)

如果您需要在Excel中工作,我只知道提供版本无关的办公室互操作dll的“Add-in Express”。

答案 2 :(得分:0)

最好的方法是针对您需要获得支持的最旧的Office版本进行编程。但实际上,您可以使用任何互操作版本来支持所需的Office版本,请参阅Supporting several Office versions in an add-in. Interop assemblies and late binding.