Обычай Викс Берн bootstrapper doesn' t обнаруживают MSI, устанавливают государство

Я создаю таможенный волшебный стиль bootstrapper на основе Wix/Burn (3.6 версии выпуска). Я базировался в на коде Wix 3.6 bootstrapper.

Проблема состоит в том, что я не могу заставить bootstrapper обнаруживать устанавливать государство моего setup.msi, который является частью связки.

Поскольку я понимаю его, все, что это требуется, должен назвать Двигатель. Обнаружьте (), где Двигатель - случай Двигателя Wix от Применения Bootstrapper. В том пункте я должен быть в состоянии посмотреть в Bootstrapper. Команда. Действие, чтобы видеть, каково необходимое действие запуска.

Моя связка содержит два пункта:.NET 4 (сеть устанавливают), и мой setup.msi.

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

2
добавлено
Просмотры: 2
nl ja de

2 ответы

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

Теперь, чтобы определить, войти ли в способ обслуживания против, устанавливают способ, можно проверить государство пакета, подписавшись на событие DetectPackageComplete. В примере ниже, моя UI использует два свойства, InstallEnabled и UninstallEnabled, чтобы определить что "способ" представить пользователю.

private void OnDetectPackageComplete(object sender, DetectPackageCompleteEventArgs e)
    {
        if (e.PackageId == "DummyInstallationPackageId")
        {
            if (e.State == PackageState.Absent)
                InstallEnabled = true;
            else if (e.State == PackageState.Present)
                UninstallEnabled = true;
        }
    }

Пример кода выше от моего сообщения в блоге на минимальных частях, должен был создать a Обычай WiX управляемое применение Bootstrapper.

4
добавлено
Спасибо Брайан. I' ll дают этому выстрел.
добавлено автор Simon Gillbee, источник
Поиск этого:).. Спасибо @BryanJ
добавлено автор Farrukh Waheed, источник

Легкий способ определить, устанавливается ли ваша Связка уже, состоит в том, чтобы использовать WixBundleInstalled переменная. Это будет установлено в отличный от нуля после того, как ваша Связка будет успешно установлена.

Кроме того, в WiX v3.7 + OnDetectBegin отзыв теперь говорит вам, если связка устанавливается так, вы не должны обычно подвергать сомнению переменную.

Эти изменения были внесены, чтобы облегчить обнаруживать способ обслуживания, чтобы избежать абсолютно разумного решения это предложенный @BryanJ.

3
добавлено