Я борюсь с предложениями WIX и стоимостью. Я создаю службу скелетных окон и имею код в установщике, чтобы правильно объединить файлы и развернуть службу Windows, передать аргументы командной строки и т. Д.WIX Installer использует текст пользователя для указания имени продукта/параметров командной строки
Однако служба не имеет оперативной логики, развернутой в коде - его все вытащили во время выполнения из WS, в котором хранится информация о конфигурации. Мне нужно сообщить службе Windows (во время установки), какое имя конфигурации использовать.
Мне также нужно установить службу, чтобы она отличалась от всех остальных, учитывая это имя конфигурации. В коробке могут быть установлены n экземпляров этой вещи; каждая услуга вытягивается из другой конфигурации.
Вкратце: мне нужно установить свойство (и имя продукта) динамически на основе ввода пользователя.
Вот что я пытаюсь не зная, как поступить на получение значения «Config», установленный пользователем:
<!-- //todo: define this by user input??-->
<?define Config = "DefaultConfigName" ?>
<Product Id="*" Name="$(var.Config)" Language="1033" Version="1.0.0.0" UpgradeCode="{someGUID}">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate EmbedCab="yes" />
<Feature Id="ProductFeature" Title="$(var.Config)" Level="1">
<ComponentGroupRef Id="ProductComponents" />
</Feature>
</Product>
Мысли?
Извините за медленный ответ - этот способ очень полезен. Я понятия не имел, что определение было только временем компиляции, и что свойства были разными, чем константы, определяемые временем компиляции. Благодарю. – Noah
Хорошо, я в конце концов решил определить переменную через командную строку при компиляции msi. Передача -dConfig = «ConfigName» на свечу при создании установщика работала для того, что нам было нужно, и было менее сложным, чем другие параметры. – Noah