Развертывание приложения. Идентификатор компонента Зависимости приложений - PullRequest
1 голос
/ 07 декабря 2011

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

Существует несколько сторонних приложений, от которых зависит мое приложение, и мне нужно проверить, установлены ли они. Когда приложения установлены, никаких конкретных записей реестра нет.

Я получил их пакеты MSI. Я знаю, что должен указать GUI MSI (идентификатор компонента) в условиях запуска WI. Когда я загружаю оба этих пакета (упомянутых выше) в утилиту orca , я получаю следующий (нечетный) результат:

enter image description here

Как узнать, какой у меня компонент? Почему имена компонентов имеют странное представление? Есть ли альтернативный способ проверить, существует ли другое приложение при установке моего пакета?

1 Ответ

0 голосов
/ 08 декабря 2011

Условия запуска останавливают установку, если они не выполняются. Для установки сторонних пакетов вы можете добавить их в качестве предварительных условий.

Проекты установки Visual Studio не поддерживают создание пользовательских предварительных условий. Тем не менее, это можно сделать, вручную создавая необходимые манифесты. Вы можете найти структуру манифестов здесь: http://msdn.microsoft.com/en-us/library/ms229223(VS.80).aspx

Эти манифесты могут генерироваться автоматически с помощью инструмента Bootstrapper Manifest Generator .

После создания манифестов пакета вы можете добавить все эти файлы (включая пакет) в отдельную папку в папке предварительных требований Visual Studio, например:

C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages

После этого вы можете выбрать необходимые компоненты на страницах свойств проекта установки.

Подробнее о предпосылках вы можете прочитать здесь:

Что касается критериев обнаружения, я рекомендую использовать Код продукта . Вы можете найти его в Property таблице.

Имена компонентов, сгенерированные Visual Studio, не удобны для пользователя. Кроме того, вы не можете использовать их имена. В лучшем случае вы можете использовать ComponentId, который является GUID.

Компоненты не являются надежными критериями обнаружения, и я не рекомендую их.

...