环境:
Windows XP计算机
安装了Excel 2007和Excel 2003(按此顺序,而不是按时间顺序).
C#3.5
问题:
当我使用PIA进行一些Office自动化时,我使用以下代码行:
var excel = new ApplicationClass();
Run Code Online (Sandbox Code Playgroud)
PIA的版本特别指它为Excel 12.
C:\ WINDOWS\assembly\GAC\Microsoft.Office.Interop.Excel\12.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll
但是:
excel.Version;//this is 11.0 instead of 12.0
Run Code Online (Sandbox Code Playgroud)
因此,当我尝试打开一个扩展名为.xlsx的文件时,它会警告我文件转换中的功能丢失,并使用excel 2003打开它.我很确定它与安装顺序是2007 - > 2003,但我无法在我的机器上卸载2003 b/c我们在我们的网络服务器上有一些办公室自动化,用于使用excel 2003的无关项目.
我查看了Policy.11.0.Microsoft.Office.Interop.Excel.config的内容,但它说
<bindingRedirect oldVersion="11.0.0.0" newVersion="12.0.0.0"></bindingRedirect>
Run Code Online (Sandbox Code Playgroud)
所以,我不知所措.为什么我不能告诉COM Interop使用哪个版本的Excel?