Настройте установщик WiX для использования различных учетных данных пользователя в зависимости от среды - PullRequest
0 голосов
/ 05 февраля 2019

Я исследовал всю сеть в поисках подсказок о том, как этого добиться, но не повезло.У меня есть проект установщика WiX в Visual Studio 2013, который устанавливает службу Windows (она не содержит пользовательский интерфейс, только консоль), и, поскольку она устанавливает службу, необходимо указать пользователя, и права этого пользователя будут действовать.Проблема в том, что этот пользователь жестко запрограммирован в моем файле .WXS, и он работает со стеками DEV и QA, но пользователь не существует в prod, поэтому программа установки не работает.

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

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

Вот текущий код WXS, отредактированный для простоты:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Product Id="Some ID" 
           Name="TestService" 
           Language="1033" 
           Version="1.0.0" 
           Manufacturer="TestManufacturer" 
           UpgradeCode="Some Upgrade Code">

    <Package Compressed="yes"/>

    <Media Id="1" Cabinet="test.cab" EmbedCab="yes"/>

    <Property Id="LOGIN">HARD-CODED USER</Property>
    <Property Id="PASSWORD">HARD-CODED PASSWORD</Property>

    <Directory Name="SourceDir" Id="TARGETDIR">
      <Directory Name="ProgramFilesFolder" Id="ProgramFilesFolder">
        <Directory Name="TestDir" Id="_1">
          <Directory Name="Service.ServiceSub" Id="_2">
            <Component Id="_1" Guid="Some Guid">
              <File Source="$(var.Service.ServiceSub.TargetPath)" />

          <ServiceInstall 
            Id="TestServicee" 
            Name="TestService" 
            DisplayName="Test" 
            Type="ownProcess" 
            Start="auto" 
            ErrorControl="normal" 
            Description="This is a test" 
            Account="[LOGIN]" 
            Password="[PASSWORD]" />
          <ServiceControl Id="StopTestService" Name="TestService" Stop="both" Wait="yes" Remove="uninstall" />
        </Component>
      </Directory>
    </Directory>
  </Directory>
</Directory>

<Feature Id="_1" Level="1">
  <ComponentRef Id="_1"/>
</Feature>

</Product>

Скажите, пожалуйста, если что-то не ясно, я могу расширить информацию.Спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

Спасибо за ваши комментарии, я только что создал 3 .Bat-файла и установил службы с msiexec, передавая учетные данные в качестве аргументов, например:

msiexec /i SampleServiceSetup.msi LOGIN="sampleUsername" PASSWORD="SamplePassword*"

Когда мне нужны другие учетные данные, просто спросите их вcmd:)

0 голосов
/ 06 февраля 2019

Вы пытались создать несколько экранов пользовательского интерфейса в потоке установщика для принятия ввода имени пользователя / пароля, чтобы затем вы могли назначить эти значения свойству и использовать его в своем примере?

...