Выбор COM-объекта Office 2003/2007 (правильный) в приложении Winforms - PullRequest
1 голос
/ 01 октября 2008

Мы создаем приложение Windows Form (C # или VB.NET), которое должно ссылаться на COM-объект Office 2003 или Office 2007, в зависимости от версии установленного офиса. Каков наилучший способ справиться с этим сценарием и ссылаться на правильный COM-объект во время выполнения?

Ответы [ 2 ]

1 голос
/ 25 ноября 2008

Если вы не хотите использовать какие-либо из недавно добавленных объектов и методов объектной модели Office 2007, можно создавать ссылки на PIA Office 2003, просто убедитесь, что в целевой системе развернута правильная версия PIA:

Другим способом решения этой проблемы является удаление зависимости от более поздних PIA. Из-за высокой степени обратной совместимости в Office можно смело предположить, что если ваша надстройка работает в Office 2003 (с PIA Office 2003), то она также должна работать и в Office 2007 (с PIA Office 2007).

(из надстройки для нескольких версий Office без PIA от Andrew Whitechapel)

В противном случае я бы порекомендовал вам следующие статьи блога Эндрю Уайтчепела: Можете ли вы создать одну надстройку для нескольких версий Office? (см. БОЛЬШОЕ предупреждение о том, что это официально не поддерживается Microsoft).

Другой вариант, когда вам не нужны PIA (это значительно упрощает развертывание), - это использование ComImport вместе с поздним связыванием. Это, однако, медленнее, чем использование сборок взаимодействия, но если код автоматизации не на быстром пути, это может быть хорошим решением. Вы найдете объяснение, как реализовать это в той же записи блога: Надстройки для нескольких версий Office без PIA

0 голосов
/ 01 октября 2008

Разве основные сборки взаимодействия для Office не помогут с этим? Я не знаю наверняка, поскольку мне не приходилось использовать их всерьез, но я думаю, что они будут.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...