Соглашение заключается в установке 32-разрядного программного обеспечения на Program Files (x86)
в 64-разрядной системе. Я не думаю, что вы хотите установить 32-битное программное обеспечение на Program Files
- это пошло бы вразрез.
Что касается исправления, мне интересно, почему Excel считает, что ваши DLL установлены в Program Files
. Возможно ли, что вы где-то используете жестко закодированные пути?
Из вашего комментария к этому ответу действительно видно, что вы жестко запрограммировали путь установки. Похоже, это может быть проблемой во многих отношениях. Вы обнаружили проблему с 64-битной ОС, но что, если системный диск вашего пользователя - D? А что, если у них есть локализованная версия Windows? Например, в Германии папка с программными файлами обычно C:\Programme
.
Из того, что я могу почерпнуть о том, как развернуть надстройку VSTO, вы просто пишете несколько разделов реестра, в которых содержатся сведения о том, где находится DLL. Я предполагаю, что в настоящее время у вас есть это местоположение жестко запрограммировано, и вам нужно изменить свой установщик, чтобы написать местоположение на основе местоположения, которое пользователь выбирает при установке VSTO.