Невозможно установить пакет с загрузчиком WiX

У меня есть настройка WiX для моего приложения C#.

У меня есть WiX Bootstrapper, используемый для установки приложения, .NET Framework и SQL Server.

У меня 2 проблемы с установкой для SQL сервера.

  • На ПК с установленным приложением мой загрузчик не обнаруживает его и пытается переустановить. В лог-файл я вижу

"Ключ реестра не найден. Ключ = 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\ Имена экземпляров \SQL'"

Но я проверил с помощью regedit, я получил регистр:

Вот мой код:

<util:RegistrySearch
    Id="SqlInstanceKeyFound"
    Root="HKLM"
    Key="SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL"
    Value="SQLEXPRESS"
    Result="exists"
    Variable="SQLServerInstalled" />
  • На ПК без приложения установка завершилась с ошибкой 0x84b40000.

Вот мой код:

  <ExePackage Id="SQLExpressx64"
              SourceFile=".\Resources\SQLEXPR_x64_ENU.exe"
              PerMachine="yes"
              Cache="no"
              Compressed="no"
              DownloadUrl="https://download.microsoft.com/download/0/4/B/04BE03CD-EAF3-4797-9D8D-2E08E316C998/SQLEXPR_x64_ENU.exe"
              Permanent="yes"
              Vital="yes"
              InstallCommand="/q /hideconsole /action=Install /features=SQL /instancename=SQLEXPRESS /enableranu=1 /sqlsvcaccount=&quot;NT Authority\Network Service&quot; /AddCurrentUserAsSqlAdmin /IAcceptSqlServerLicenseTerms /skiprules=RebootRequiredCheck"
              InstallCondition="VersionNT64 AND NOT SQLServerInstalled" />

Спасибо за помощь

1 ответ

Я не эксперт, однако, я работал над этим.

Мой код был (работает):

<util:RegistrySearch 
   Id="regsearchSqlInstanceFound" 
   Root="HKLM" 
   Key="SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" 
   Value="$(var.SqlInstanceName)" 
   Result="exists" 
   Variable="SqlInstanceFound"
/>

Моя переменная значения была:

<?define SqlInstanceName=MSSQLSERVER?>
Другие вопросы по тегам