Невозможно прочитать реквизиты документа Office 2007 с помощью dsofile.dll x86 в системе x64.

StackOverflow https://stackoverflow.com/questions/1926482

Вопрос

У нас есть 32-разрядное приложение .NET, которое использует 32-разрядную версию DSOFile.dll 2.1 для чтения общих свойств из документов Office.Это работает в 32-разрядных версиях Windows как для документов Office 2003, так и для документов Office 2007.Сейчас мы изучаем поведение нашего приложения в 64-битной среде, в частности в 64-битной Windows Server 2008.

В этой 64-битной среде DSOFile.dll может успешно читать свойства документов Office 2003 (например.DOC), но в случае документов Office 2007 (например.DOCX), для всех свойств возвращаются только пустые строки, иначе генерируется ошибка.

Вот мои наблюдения:

Среда:чистая установка
Прочтите реквизиты DOC:ХОРОШО
Прочтите реквизиты DOCX:Возвращены пустые значения

Среда:Пакет обеспечения совместимости Office 2007 установлен.
Прочтите реквизиты DOC:ХОРОШО
Прочтите реквизиты DOCX:Возвращены пустые значения

Среда:Пакет обеспечения совместимости Office 2007 SP1
Прочтите реквизиты DOC:ХОРОШО
Прочтите реквизиты DOCX:Возвращены пустые значения

Среда:Офис 2007 установлен
Прочтите реквизиты DOC:ХОРОШО
Прочтите реквизиты DOCX:Сообщение об ошибке = «Документ не является файлом OLE»

В 64-битной системе я использовал копию regsvr32, расположенную в %SystemRoot%\Syswow64, для регистрации dsofile.dll.

Любой совет будет принят с благодарностью.

Это было полезно?

Решение

Вы можете скомпилировать свое приложение на x86 вместо AnyCPU, тогда оно будет нормально работать на x64 Windows.

Другой возможный способ — использовать Open XML SDK 2.0 для Microsoft Office.Посмотрите, поддерживает ли он приложения x64.

http://www.microsoft.com/downloads/details.aspx?FamilyId=C6E744E5-36E9-45F5-8D8C-331DF206E0D0&displaylang=en

Другие советы

Вы можете найти исходный код DSOFIle (посмотрите в Google) и скомпилировать его для 64-битной версии или попробовать эту ссылку, по словам кого-то, они уже это сделали:http://www.keysolutions.com/blogs/kenyee.nsf/d6plinks/KKYE-79KRU6

У меня также есть версия для x64, если она вам нужна, я могу ее загрузить.

Возможно, это не имеет прямого отношения к вашей проблеме, но если вы хотите попробовать, я использовал x86 и x64.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top