По многим причинам я установил на свой ноутбук MSExcel 2003 и MSExcel 2007. Мне нужны обе версии для разработки конкретных проектов для каждой версии (проекты уровня документа и проекты уровня приложения).
Теперь мне нужно сделать проект WinForm, который открывает файл Excel, читает CustomXMLParts и записывает новый файл Excel. Я использую ссылку на Microsoft.Office.Interop.Excel, которая использует .. \ Visual Studio Tools для 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. Заранее спасибо.