Я создал одну надстройку, предназначенную для версий Outlook 2003, 2007 и 2010.
Я сделал это с VS2008, VSTOSE и PIA2003, а также с Outlook 2003 на моей машине разработчика. Я не знаю, как это будет масштабироваться до надстроек уровня офиса / документа, но это может сработать.
Однако вам потребуется определить версию Outlook / Office на каждом клиенте и установить соответствующую PIA.
Это можно сделать с помощью Проверка компонентов . В каждом пакете Bootstrapper вы можете проверить, какая версия существует, и установить этот пакет только тогда, когда это применимо. Например, в файле product.xml для пакета начальной загрузки вы должны иметь:
<?xml version="1.0" encoding="utf-8"?>
<InstallChecks>
<ExternalCheck Property="Office2003Exists" PackageFile="ComponentCheck.exe" Arguments="{3EC1EAE0-A256-411D-B00B-016CA8376078}"/>
<ExternalCheck Property="Office2003PIAExists" PackageFile="ComponentCheck.exe" Arguments="{14D3E42A-A318-4D77-9895-A7EE585EFC3B}"/>
</InstallChecks>
<Commands Reboot="Defer">
<Command PackageFile="o2003pia.msi" Arguments="" EstimatedInstalledBytes="30000000" EstimatedInstallSeconds="60">
<InstallConditions>
<BypassIf Property="Office2003Exists" Compare="ValueNotEqualTo" Value="0" />
<BypassIf Property="Office2003PIAExists" Compare="ValueEqualTo" Value="0" />
<FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired"/>
</InstallConditions>
<ExitCodes>
<ExitCode Value="0" Result="Success"/>
<ExitCode Value="1641" Result="SuccessReboot"/>
<ExitCode Value="3010" Result="SuccessReboot"/>
<DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" />
</ExitCodes>
</Command>
</Commands>
Идентификаторы продукта на 2007 год:
Outlook : 0638C49D-BB8B-4CD1-B191-050E8F325736
PIA: ED569DB3-58C4-4463-971F-4AAABB6440BD
Идентификаторы продукта на 2010 год:
Outlook : CFF13DD8-6EF2-49EB-B265-E3BFC6501C1D
PIA: 1D844339-3DAE-413E-BC13-62D6A52816B2
Это означает, что вы должны будете включить предварительные требования в ваш установочный пакет, а не разрешать загрузки, что, очевидно, увеличит размеры загрузки.
Вы также сможете использовать методы и т. Д., Которые есть в 2003 году. Кроме того, все созданные вами панели инструментов будут базовыми, поскольку у вас не будет полного контроля над лентой. Вы по-прежнему можете добавлять кнопки и т. Д., Как и в 2003 и 2007 годах. Они появятся в отдельной группе лент в 2010 году.
Один совет, хотя в своем решении я создал отдельную сборку для всего, что не взаимодействовало с Outlook. Таким образом, если требования изменятся в будущем, я могу легко разделить надстройки на определенные версии, не затрагивая основные основные функции надстройки.