Развертывание PIA в смешанных версиях Office

Здравствуйте, я боролся с некоторыми сложностями с пониманием развертывания первичных сборок взаимодействия (PIA) для MS Office. У меня есть надстройка Visual Studio Com, построенная в VS 2008 на чистой технологии com (не VSTO, см. Нижнюю часть этого для получения дополнительной информации), которая ссылается на основные сборки взаимодействия 2003 года, но надстройка может использоваться в 2003, 2007 или теперь 2010 Офисная техника. Поскольку я никогда не знаю, будет ли заказчик использовать 2003, 2007 или 2010, я не могу просто развернуть одну версию PIA в качестве предварительного условия (если я не сделаю 3 установщика, которые я не хочу делать). Насколько я понимаю, когда вы выполняете шаги здесь , чтобы добавить 2003 и 2007 PIA в списки обязательных требований, которые отображаются в пакете установки Visual Studio (2008), предварительные требования достаточно умны, чтобы определить, какой офис версия работает на целевом клиенте. Итак, если вы выбрали первичные сборки взаимодействия 2003 и первичные сборки iterop 2007 в качестве предварительных условий, то при установке на машину с 2003 она должна быть достаточно умной, чтобы пытаться добавить 2003 PIA только в том случае, если они отсутствуют на этой машине и если это компьютер с Office 2007, он установит только 2007 PIA (и не попытается установить 2003 PIA).

Вопрос 1 является ли это правильным пониманием (что необходимые пакеты настолько умны, что устанавливают только то, что ему нужно на основе версии Office?)

Вопрос 2 есть ли способ получить 2010 PIA для отображения в списке предварительных условий в VS 2008, как 2003 и 2007? Я не хочу обновлять этот проект до VS 2010 b / c, теперь он считается устаревшим приложением, и его используют многие клиенты со всего мира.

Вопрос 3 Несмотря на то, что фактическая сборка ссылается на основные взаимодействия 2003 года, я в настоящее время не развертываю эти взаимодействия с надстройкой в ​​месте установки. Вместо этого я предполагаю, что если я смогу установить правильную PIA, то мне не понадобится это присутствие в пути установки, поскольку PIA будет в GAC. Однако одним из возможных подходов может быть просто включение сборок 2003, на которые есть ссылки (в моем случае excel и word), в путь установки и не беспокоиться о PIA. Я подозреваю, что это сработает на машинах 2003 года, но, возможно, не на машинах 2007 и 2010 b / c на последнем, даже если упомянутые прерывания 2003 года найдены во время выполнения в пути установки сборки, я думаю, что если нет Политика.11.0.Microsoft.Office.Interop.Excel / Word (и т. д.) в GAC, тогда 2007 и 2010, вероятно, не будут знать, что делать с прерываниями 11.0 (2003) (поскольку я думаю, что файлы Policy.11.0.Microsoft.Office.Interop перенаправляют запросы для прерываний 2003 года на 2007 или 2010). Есть какие-нибудь мысли по этому поводу?

Вопрос 4: В приложениях Framework 2.0 для надстроек Office и Office 2003 есть хорошо известная ошибка, при которой надстройка не загружается. Это было адресовано KB907417, также известному как KB908002. Кто-нибудь знает, нужен ли этот КБ, если вы разрабатываете на платформе 3.0 или 3.5 (и делаете 3.0 или 3.5 предварительным условием), поскольку эта проблема была специфичной для платформы 2.0? Или же KB все еще нужно развернуть, потому что проблема заключается в офисе 2003, а не в версии фреймворка?

Как вы можете понять по моим трем вопросам, я пытаюсь выяснить, сможем ли мы его создать единый установщик с помощью утилиты настройки VS. Если PIA можно выполнить с помощью одного установщика, но указанный выше КБ является препятствием (возможно, ответ вернется, что даже на платформе 3.0 или 3.5 2003 клиентам потребуется КБ), то, возможно, путь к одному установщику - просто сделать KB является обязательным условием для всех и установить его на машины 2007 или 2010, хотя технически они им не нужны. Любые мысли по этому поводу также будут оценены. Наконец, я знаю, что написание управляемой надстройки Com для excel или word в настоящее время обычно выполняется с помощью VSTO вместо чистого управляемого кода фреймворка, но в настоящее время это не вариант для изменения устаревшего приложения в этом направлении. Также сообщается, что фреймворк 4.0 теперь можно использовать для развертывания надстроек, не делая PIA обязательным условием, но, опять же, сейчас это не жизнеспособный вариант.

6
задан Duncan Lock 1 August 2013 в 22:07
поделиться