Вопрос о пользовательских действиях установщика VS - PullRequest
2 голосов
/ 03 февраля 2009

Если у вас есть модуль слияния веб-приложения и модуль слияния exe, включенные в один и тот же проект установки-развертывания, значение Context.Parameters ["AssemblyPath"] внутри настраиваемого действия для каждого модуля слияния будет испорчено. Попробуйте создать проект установки-развертывания, в котором есть веб-проект и проект приложения, например:

  1. Создание веб-проекта
  2. Создать модуль слияния для этого веб-проекта
  3. Создайте обычный проект приложения
  4. Создать модуль слияния для этого приложения
  5. Создайте проект установки, который имеет оба вышеупомянутых модуля слияния
  6. Создание проекта для пользовательского установщика.
  7. В переопределении метода Commit () перейдите к Context.Parameters ["AssemblyPath"] и отладьте распечатанное значение.
  8. Добавьте этот вывод проекта настраиваемого действия в оба ваших модуля слияния. Теперь сделайте установку. Можно ожидать, что будут напечатаны разные значения в зависимости от того, какой модуль слияния вызывает это настраиваемое действие. Но они одинаковы! Иногда это c: \ inetpub \ wwwroot, а иногда это C: \ MyAppDir ...

Файлы модуля слияния оказываются в правильном месте, хотя:
Содержимое веб-проекта отправляется в C: \ Inetpub \ wwwroot \
в то время как проект приложения переходит в «папку для перенаправления модуля».
Вы также заметите, что customactions.dll, включенный в каждый модуль слияния, окажется в нужных местах (c: \ inetpub \ wwwroot \ в одном случае и «папка для перезапуска модуля» в другом).

Но отладочная распечатка из Context.Parameters ["AssemblyPath"] будет показывать одно и то же значение в ОБА случаях (то есть в обоих модулях слияния). Это будет C: \ Inetpub \ wwwroot \ CustomActions.dll или <targetdir> \ CustomActions.dll. Это не верно !

Отладочная печать должна показывать
C: \ Inetpub \ wwwroot \ CustomActions.dll, когда отладочная печать поступает из модуля слияния на основе веб-проекта, и <targetdir> \ CustomActions.dll, когда отладочная печать поступает из модуля слияния на основе проекта приложения.

Кто-нибудь знает, почему значение не обновляется для модуля слияния? Это ошибка в Microsoft VS?

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