Возможно ли заставить работать приложение, на ПК, где нет необходимой версии офиса?
Возможно ли заставить работать приложение, на ПК, где нет необходимой версии офиса?
Разрабатывал приложение, где стоял 2016 офис, потом кинул приложение на ПК, где 2007 офис и возникли проблемы при запуске...
На машине стоял 2007 офис и я попробовал кинуть библиотеку(Вроде, от 2016) и получил такую ошибку:
> > System.IO.FileLoadException: Could not load file or assembly 'office, Version=14.0.0.0, Culture=neutral,
> PublicKeyToken=71e9bce111e9429c' or one of its dependencies. The
> located assembly's manifest definition does not match the assembly
> reference. (Exception from HRESULT: 0x80131040) File name: 'office,
> Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'
> ***
>
> WRN: Assembly binding logging is turned OFF. To enable assembly bind
> failure logging, set the registry value
> [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1. Note: There
> is some performance penalty associated with assembly bind failure
> logging. To turn this feature off, remove the registry value
> [HKLM\Software\Microsoft\Fusion!EnableLog].
Конкретно с MS'овскими всякими Microsoft.Office.Interop.<нужная прога> - невозможно. Пруф. Там же есть рекомендация в виде ссылки на сторонние библиотеки. Если использовать форматы docx (и ему подобные), то можно использовать OpenXML SDK.
UPD: разумеется, если использовать OpenXML SDK, то приложение переписывать придётся.
iluxa1810:
Вам чего нужно добиться от этой программы? Чтоб с Access DB работать? Это можно делать через OleDB вроде как.
PS: в вопросе лучше укажите, что нужно именно для Access, а не для других программ из офисного пакета.
Я RecordSet'ы открываю, что бы над каждой записью сделать некоторую манипуляцию с использованием высокоуровневых языков... Я не спорю, что можно и через DataAdapter- это делать, но база может быть здоровой и грузить все в память- это не очнь хорошо...
iluxa1810:
ну тогда два выхода. Либо OleDB (или подобный провайдер для Access), либо версия офиса, совпадающая с Microsoft.Office.Interop.Access.
Кстати, есть вариант (попробовать) отдельно поставить эти Interops той версии, под какой офис будет разрабатываться ПО, на тот ПК, где ведется разработка. Ну там стоит у вас (допустим) офис2010, а написать надо под офис2007. Вот можно вроде как установить отдельно Interops для офис2007.