Окружающая среда:
Машина для Windows XP
Установлены как Excel 2007, так и Excel 2003 (в том порядке, а не в хронологическом порядке).
С# 3.5
Проблема:
Когда я использую PIA для автоматизации Office, я использую следующую строку кода:
var excel = new ApplicationClass();
Версия PIA специально ссылается на нее как на Excel 12.
C:\WINDOWS\сборка\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
Таким образом, когда я пытаюсь открыть файл с расширением .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>
Итак, я в недоумении. Почему я не могу сообщить COM Interop, какую версию Excel использовать?