Как установить версию .NET Framework, используемую для запуска настраиваемого действия MSIExec - PullRequest
0 голосов
/ 03 марта 2011

Я использую WiX для создания MSI, который вызывает управляемое настраиваемое действие (CA), написанное с Votive в VS 2008. CA предназначается для .NET 32 bit Framework 3.5. Когда я запускаю установку, она не загружает CA, так как не может найти правильную версию фреймворка. В журнале установки MSI есть строки

MSI (5C: C0) [10: 25: 00: 680]: Здравствуйте, я ваш 32-битный Олицетворенный сервер пользовательских действий.
SFXCA: извлечение пользовательского действия во временный каталог: C: \ Windows \ Installer \ MSI34ED.tmp - \
SFXCA: привязка к версии CLR v4.0.30319

Я решил, что проблема в том, что загружается неверная версия фреймворка. Кажется, это обратная проблема, упомянутая при попытке запустить ЦС версии 4 и версии 2 фреймворка загружается MSIExec (я предполагаю, что MSIExec решает загрузить фреймворк).

У меня также есть VS 2010, но по независящим от меня причинам я должен использовать VS 2008 для проекта. Если я обновлю проект до VS 2010, все будет работать так, как ожидалось, поскольку центр сертификации затем нацелен на .NET 4.0.

Есть ли способ заставить MSIExec загружать .NET 2.0 / 3.5 при вызове Custom Action?

ОБНОВЛЕНИЕ: я изменил CustomAction.config, чтобы он теперь имел
<!--<supportedRuntime version="v4.0" />-->
<supportedRuntime version="v2.0.50727"/>
и это не имеет значения.

Я также обнаружил, что именно попытка загрузить CA в отладчик вызывает исключение. Если я запускаю msi без прерывания работы метода, он работает как положено (без ошибок). Так что я могу развернуть установку как установку .NET 3.5, я просто не могу отлаживать CA.

1 Ответ

0 голосов
/ 11 марта 2011

Похоже, вы не можете переопределить версию .Net, используемую MSIExec.
Запись в блоге Аарона Стебнера Не используйте управляемый код для написания своих пользовательских действий! говорит:

Кроме того, если вы создаете управляемое настраиваемое действие DLL, вы оставляете свою судьбу в руках установщика Windows, поскольку он будет использовать последнюю версию .NET Framework на компьютере во всех случаях

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...