出于多种原因,我在笔记本电脑上安装了 MSExcel 2003 和 MSExcel 2007。我需要这两个版本来为每个版本开发特定项目(文档级项目和应用程序级项目)。现在我需要做一个 WinForm 项目,打开一个 Excel 文件,读取一个 CustomXMLParts 并编写一个新的 Excel 文件。我正在使用对 Microsoft.Office.Interop.Excel 的引用,它使用 ..\Visual Studio Tools for Office\PIA\ Office12 \Microsoft.Office.Interop.Excel.dll 库(适用于 Excel 2007)。对于这段代码:
Microsoft.Office.Interop.Excel.Application excelApplication;
excelApplication = new Microsoft.Office.Interop.Excel.ApplicationClass();
string version = excelApplication.Version;
此时版本是“11.0”,但我需要打开Excel 2007,它必须是“12.0”,然后当程序尝试获取CustomXMLParts时,抛出一个异常,因为这个方法在2003中不存在。
如果我卸载 Excell 2003,它可以正常工作,但我需要同时使用这两个(2003 和 2007)。当我重新安装 Excell 2003 时,它再次失败。我检查了 Interop.Excel 参考的属性“特定版本”,以确保它是正确的,并且我尝试修改 app.config oldVersion="12.0.0.0" 以使其与 Excel 2003 不兼容,但没有任何反应:
<assemblyIdentity name="Microsoft.Office.Interop.Excel" publicKeyToken="71E9BCE111E9429C" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="12.0.0.0"/>
任何想法?
我正在使用 Visual Studio 2008 和 Visual Studio Tools for Office。提前致谢。