Как добавить дополнительные компоненты в проекты установки и развертывания Visual Studio? - PullRequest
2 голосов
/ 17 мая 2009

Я пытаюсь создать очень простой проект «Установка и развертывание» с использованием Visual Studio. Что мне хотелось бы, так это возможность выбрать, какие компоненты установить. Скажем, каждый компонент состоит из первичного вывода одной библиотеки классов (т.е. каждый компонент фактически является отдельным модулем или скомпилированной сборкой).

Я не видел такой опции в стандартном наборе доступных диалогов. Но я видел, что без особых усилий мы можем как-то создать пользовательских диалогов .

  • Как программно определить, какой компонент доступен как часть проекта установки и развертывания? (т.е. я хотел бы, чтобы проект работал даже при добавлении или удалении компонента из установки)

  • Как расширить или создать настраиваемое диалоговое окно, отображающее список доступных компонентов?

  • Как определить, какие компоненты конечный пользователь выбрал для установки?

Я немного знаком с Orca, инструментом для работы с MSI-файлами, а также с полнофункциональными приложениями-установщиками, такими как InstallShield, но я хотел бы сделать это, используя только необработанные Visual Studio и другие доступные инструменты с открытым исходным кодом.

Спасибо за вашу помощь.

1 Ответ

2 голосов
/ 17 мая 2009

VDP (Visual Studio Deployment Project) не предназначен для такого рода вещей (читай: используйте вместо Wix):

  1. (Полагаю, вы хотите это во время выполнения) Вы можете использовать MsiQueryComponentState , но для этого вам нужно будет передать GUID компонента , который в VDP не контролируется.
  2. Это идет из коробки со всем, кроме VDP.
  3. (я предполагаю, что вы хотите это во время установки ...) Вы можете использовать Условие для выполнения настраиваемого действия на основе Состояние установки компонента , в VDP у вас нет контроля над Идентификатор компонента (не путать с guid компонента), который необходим для того, чтобы предварительно сформировать условие компонента.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...