Невозможно прочитать реквизиты документа Office 2007 с помощью x86 dsofile.dll в системе x64 - PullRequest
2 голосов
/ 18 декабря 2009

У нас есть 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: возвращены пустые значения

Среда: пакет обновления 1 (SP1) для Office 2007
Читайте DOC реквизиты: ОК
Чтение реквизита DOCX: возвращены пустые значения

Среда: Office 2007 установлен
Читайте DOC реквизиты: ОК
Прочитать реквизиты DOCX: Сообщение об ошибке = «документ не является OLE-файлом»

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

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

Ответы [ 2 ]

2 голосов
/ 20 августа 2010

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

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

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

0 голосов
/ 18 декабря 2009

Вы можете скомпилировать ваше приложение на 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

...