Из собственного опыта:
Если вы хотите настроить таргетинг на Office 2003 и более поздние версии, вы должны использовать PIA Office 2003 - и ограничиться API Office 2003. Код будет работать в Office 2003 или более поздней версии . Вы по-прежнему можете вызывать функции Office 2007, используя рефлексию, но это неприятно.
Я полагаю, что если вы используете базовую версию Office 2000, то это почти та же история, хотя я не пробовал ее и считаю, что самой ранней версией, для которой сами Microsoft предоставляют PIA, является Office 2002 (XP).
Вы можете создавать свои собственные сборки Interop для 2000, и у меня нет оснований полагать, что вы не можете сделать это для '95, хотя вы первый человек, которого я когда-либо видел, просят поддержку '95! Само собой разумеется, что если вы создаете свои собственные сборки Interop, вам нужно будет развернуть их вместе с приложением.
В любом случае вы хотите использовать версию наивысшую Office, которую вы можете использовать в качестве базовой линии, чтобы вы могли поддерживать как можно больше функций, не прибегая к рефлексии. Вы должны разработать свой код на компьютере, на котором установлена только эта версия Office.
В моем случае я разрабатываю для Office 2003 и знаю, что у моих пользователей также есть 2003. Поэтому я прошу их убедиться, что у них включена функция «Поддержка программируемости .NET» (что можно сделать с помощью программы установки Office 2003 через Установка и удаление программ, если вы выберете опцию Изменить). Эта опция в основном устанавливает PIA в GAC. Для тех пользователей, которые не могут этого сделать, моя программа установки обнаруживает отсутствие PIA и устанавливает их до установки моего приложения (как это делается для .NET Framework).
Развертывание XCOPY? Да, я бы тоже этого хотел - но забудь. Во-первых, если ваша надстройка будет работать в режиме «высокой» безопасности, вам понадобится COM-код с кодовой подписью, который будет находиться между вашим кодом и Office, и это необходимо зарегистрировать. Я полагаю, что VSTO предоставляет свою собственную оболочку, если вы решите пойти по этому пути (я этого не сделал, поскольку мне нужно было иметь возможность «управлять» Office с нуля, а не полагаться на то, что пользователь запустит приложение).
Развертывание - и решение проблем с установкой и безопасностью - является одной из самых сложных частей разработки надстроек Office с .NET, и это настоящий толчок, который приходит в самом конце, когда вы думаете, что все готово.
Мой сильный совет - сэкономить дни и недели хлопот и взглянуть на Add-in Express . Я только недавно сталкивался с этим сам, и с тех пор бью себя, потому что это могло бы сэкономить мне столько времени. Он имеет несколько преимуществ, которые, я думаю, будут полезны для вас:
- Позволяет создать одну надстройку, предназначенную для Office 2000 для Office 2007 (извините, но не для 95), независимо от того, какая версия у вас установлена на ПК для разработки.
- Он создает инсталлятор для вас (который даже работает на Vista!), Который сам по себе стоит своей цены.
- Он поставляется с собственной шайбой COM и интегрирован настолько, что вам не нужно об этом беспокоиться.
- Это позволит вам иметь одну надстройку, которая имеет интерфейс меню / панели инструментов в версиях Office до 2003 года, но интерфейс ленты в 2007 году.
Обратите внимание, что я не связан с Add-in Express (кроме как в качестве недавнего клиента), но в то же время я еще не перевел свои проекты на его использование. Первоначальные тесты, которые я провел, заставили меня поверить, что это довольно хорошо - и определенно способ пойти для малых и средних проектов.