У меня есть надстройка VSTO, которая не будет установлена на 32-битных компьютерах.
Вы имеете в виду, что надстройка не загружается Office?или сам пакет установки не может быть установлен?
Я предполагаю, что надстройка не загружена.Я не знаю, как installshield контролирует битность компонентов пакета , но я постараюсь дать ответ, который можно применить к любому инструменту, если в инструменте можно настроить следующие параметры.
С помощью пакетов MSI, устанавливающих надстройки VSTO, необходимо убедиться, что записи реестра попадают в правильный куст реестра, исходя из разрядности установленной версии Office, а не ОС.
Итак, для компьютеров с Office x86 у вас есть эти реестры:
- на ОС x86 : HKLM / Программное обеспечение / Microsoft / Office / Outlook / Addins / myAddin
- на 64-разрядной ОС и 32-разрядной версии Office : HKLM / Software / Wow6432Node / Microsoft / Office / Outlook / Addins / myAddin
Два указанных выше пути представляют одну конфигурацию в MSI.т. е. если вы создаете стандартный MSI, который устанавливает стандартные записи реестра x86 на 32-разрядной машине, тот же MSI будет автоматически перенаправлен на Wow6432Node для машины x64, и все должно работать, если на этой машине установлен 32-разрядный офис.
Если у вас машина x64 с 64-битным офисом , то вам нужно принудительно установить этот реестр вне Wow6432Node, то есть непосредственно в: HKLM / Software / Microsoft / Office/ Outlook / Addins / myAddin
Это также можно сделать с помощью 32-разрядного MSI, если пометить компонент реестра MSI как 64-разрядный (не знаю, где находится этот параметр в ISно я уверен, что вы можете найти его).Это заставит ОС прекратить перенаправление на Wow6432Node для этих записей реестра.И MSI также должен работать на 32-битных машинах, где этот флаг будет игнорироваться.
Однако вы должны знать, что маркировка компонента как 64-битного в 32-битном пакете MSI вызовет некоторое ICEошибки / предупреждения .
Они расположены в HKLM / Программное обеспечение (64 бит) / Wow6432Node / Microsoft / Office / Outlook / Addins / myAddin)
К сведению, это 32-битная областьреестр на 64-битной машине, не 64-битной.Только 32-разрядные приложения могут читать реестр из этого расположения.