У нас есть 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.
Любой совет будет принят с благодарностью.