Я разработал приложение, которое импортирует данные в Microsoft Excel.
Я использую VS2005 + .NET 2.0, и Microsoft Office 2007 установлен на моем компьютере (Office 12).
Скомпилированное приложение работает нормально, если я запускаю его на своем компьютере, но при развертывании приложения на других компьютерах, скажем, те, которые используют более низкие версии (Office 2000), я получаю сообщение об ошибке:
Не удалось загрузить файл или сборку Microsoft.Office.Interop.Excel, версия 12.0.0.0
Как бы я тогда разрешил правильное выполнение моего приложения, независимо от того, установлен ли на компьютере Office (Excel)?
Спасибо.
Некоторые обновления:
Я поместил две упомянутые библиотеки DLL, а именно Microsoft.Office.Interop.Excel.dll (версия 12.0.0.0) и Office.dll (версия 12.0.0.0), в папку bin. Для этой ссылки я установил свойства Copy Local = True, и при компиляции приложения библиотеки DLL копируются в папку отладки / выпуска.
Теперь, когда я пытаюсь запустить приложение, я уже вышел из ошибки:
«Не удалось загрузить файл или сборку Microsoft.Office.Interop.Excel, версия 12.0.0.0»
но возникла другая ошибка:
System.AccessViolationException: попытка чтения или записи в защищенную память. Это часто указывает на то, что другая память повреждена.
в Microsoft.Office.Interop.Excel.WorkbookClass.SaveAs (имя файла объекта, объект FileFormat, пароль объекта, объект WriteResPassword, объект ReadOnlyRecommended, объект CreateBackup, XlSaveAsAccessMode AccessMode, объект ConflictResolution, объект AddToMru, объект TextCodepage *, объектный объект TextCodepage * Object, объект TextCodepage, объектный текстовый объект, текстовый объект 1017 *
Итак, как мне на самом деле создать приложение, которое сможет экспортировать данные в Excel независимо от установленной версии Office?
Спасибо.