Я знаю, что это тема, которая обсуждалась много раз, и люди всегда утверждают: Wix bootstrappers не должны требовать, чтобы их выполняли приподнятые. Позвольте мне объяснить наше требование и, надеюсь, любой может предложить решение, которое будет работать на всех системах.Wix Bootstrapper манифест или повышенное пользовательское действие
Наше установленное программное обеспечение - это служба Windows, которая работает с повышенным уровнем. Служба имеет различные настройки, которые хранятся в базе данных, доступ к которой может получить только администратор. Установщик также позволяет настроить те настройки, которые выполняются как часть повышенной фазы установщика. И вот в чем проблема: мы не можем загрузить текущие настройки из базы данных в неэлектированной фазе загрузчика.
Простейшим решением было бы запустить весь повышающий преобразователь, но, похоже, Wix интенсивно пытается предотвратить появление надстрочных загрузчиков по дизайну. Все обсуждения в этой области приводят к передовым решениям, в которых впоследствии используются внешние инструменты для внедрения манифеста приложения после компиляции Wix.
Да, в теории мы могли бы переработать все учетные данные базы данных, чтобы разрешить доступ к чтению установщика, но я хотел бы предотвратить это из-за соображений безопасности. Мы также могли бы сохранить копию настроек установщика в читаемом месте (например, в реестре), но это также не рекомендуется поддерживать.
Есть ли какой-то чистый Wix-встроенный механизм для загрузки этих настроек или поднять загрузчик с самого начала с помощью манифеста приложения? Мы знаем, что повышенные загрузочные файлы являются «не очень приятными» для пользователя, но наше программное обеспечение адресовано операторам услуг, которые должны иметь привилегии администратора для работы нашего программного обеспечения.
Update # 1: У нас уже есть обычай WPF-GUI как загрузчик приложение, использующее Microsoft.Tools.WindowsInstallerXml.Bootstrapper.BootstrapperApplication
класса предоставленного Wix.
Когда мне нужно было запустить bootstrapper, я только что перестроил его из источника, изменив несколько файлов манифеста. Для создания Wix 3.10 этот путь требует VS 2015 с поддержкой Windows XP для C++. Я могу описать этот путь, если вам действительно нужно следовать ему. –
Что я, возможно, забыл упомянуть, так это то, что мы уже создаем собственный пользовательский интерфейс, используя 'Microsoft.Tools.WindowsInstallerXml.Bootstrapper: BootstrapperApplication'; Я не уверен, что это имеет значение для этой темы. Может ли эта сборка bootstrapper стать обычным проектом, который является частью решения, или это скорее полная пользовательская сборка Wix, создаваемая с использованием вашего подхода? – Danielku15
не имеет значения. После восстановления вам придется заменить оригинальный ожог.exe в папке с двоичными файлами wix и после того, как все приложения bootstapper, созданные с помощью этих двоичных файлов, будут запрашивать учетные данные при запуске. –