2016-06-29 10 views
2

WiX расслоение не позволяет мне установить SqlLocalDB.msi молча и ошибки вне заявив следующее:Установите SqlLocalDB.msi молча WiX Ожог # EDIT3

Необходимые IACCEPTSQLNCLILICENSETERMS = YES параметр командной строки отсутствует. Указав этот параметр, вы подтверждаете, что принимаете условия лицензии конечного пользователя для SQL Server 2016.

Я попытался вставить аргумент командной строки, выполнив следующее.

<MsiPackage SourceFile="SqlLocalDB.msi" Vital="yes" DisplayInternalUI="no"> 
    <MsiProperty Name="CommandLineArgLocalDB" Value="IACCEPTSQLNCLILICENSETERMS=YES"/> 
</MsiPackage> 

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

EDIT:

я понял, что MsiProperty в основном используется для передачи в аргументе командной строки К МОЕМУ MSI, а не внутренней MSI. Это не то, что я хочу сделать.

EDIT2:

Я попытался предложение Исайи

<MsiProperty Name="IACCEPTSQLNCLILICENSETERMS" Value="YES"/> 

Но проблема все еще сохраняется.

После проверки журнала я нашел эту строку.

[0708: 0C70] [2016-06-30T08: 38: 48] i301: Применение выполнения пакета: SqlLocalDB.msi, действие: Установить, путь: C: \ ProgramData \ Пакет Cache {E359515A-92E6- 4FA3-A2C9-E1BA02D8DE6E} v13.0.1601.5 \ SqlLocalDB.msi, аргументы: 'ARPSYSTEMCOMPONENT = "1" MSIFASTINSTALL = "7" IACCEPTSQLNCLILICENSETERMS = "YES"'

Разве это не значит, что я уже применяется IACCEPTSQLNCLILICENSETERMS = "YES" ...? Почему я до сих пор не могу правильно установить это?

Возможно, потому что ДА окружен котировками?

EDIT 3:

попытался сделать

<MsiProperty Name="IACCEPTSQLNCLILICENSETERMS=YES"/> 

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

Спасибо

ответ

1

Так что я действительно спросил об этом в списке рассылки и получил ответ.

<MsiPackage SourceFile="SqlLocalDB.msi" Vital="yes" DisplayInternalUI="no"> 
    <MsiProperty Name="ALLUSERS" Value="1"/> 
    <MsiProperty Name="IACCEPTSQLNCLILICENSETERMS" Value="YES"/> 
</MsiPackage> 

Просто добавив ALLUSERS MsiProperty решила проблему. Я хочу, чтобы сообщение об ошибке указывало другое сообщение.

+0

Не используйте свойство ALLUSERS. Установите атрибут 'ForcePerMachine' в' MsiPackage' вместо 'yes'. –

+0

Похоже, этот подход работает хорошо. Спасибо. Для дальнейшего использования, почему сила на машину лучше, чем использование всех пользователей? –

+0

'ALLUSERS' принципиально изменяет способ установки пакета, v4 не позволяет устанавливать такие свойства - https://github.com/wixtoolset/issues/issues/5293. –

1

Вы можете попробовать это? Я не могу проверить это сейчас, но я думаю, что это должно сработать.

<MsiPackage SourceFile="SqlLocalDB.msi" Vital="yes" DisplayInternalUI="no"> 
    <MsiProperty Name="IACCEPTSQLNCLILICENSETERMS" Value="YES"/> 
</MsiPackage> 
+0

Благодарим за предложение. Я тоже это пробовал. Но не повезло. Должно быть что-то еще ... –

1

WIX V4

добавить WixUtilExtension ваших ссылок проекта, то добавьте следующую строку внутри Wix тега

xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util" 

добавить это, чтобы проверить, если он уже установлен или нет

<util:RegistrySearch Id="Sql32" Root="HKLM" Key="SOFTWARE\Microsoft\Microsoft SQL Server Local DB\Installed Versions\12.0" Value="ParentInstance" Result="exists" Variable="Sql32"/> 
<util:RegistrySearch Id="Sql64" Root="HKLM" Key="SOFTWARE\Microsoft\Microsoft SQL Server Local DB\Installed Versions\12.0" Value="ParentInstance" Result="exists" Variable="Sql64" Win64="yes"/> 

затем в Теме добавить в корзину

<MsiPackage Id="SqlLocalDB2014x32" SourceFile="..\..\Prerequisites\SqlLocalDB-x32.msi" Permanent="yes" ForcePerMachine="yes" Vital="no" DisplayInternalUI="no" InstallCondition="NOT (Sql32)"> 
     <MsiProperty Name="IACCEPTSQLLOCALDBLICENSETERMS" Value="YES" /> 
    </MsiPackage> 
    <MsiPackage Id="SqlLocalDB2014x64" SourceFile="..\..\Prerequisites\SqlLocalDB-x64.msi" Permanent="yes" ForcePerMachine="yes" Vital="no" DisplayInternalUI="no" InstallCondition="NOT (Sql64)"> 
     <MsiProperty Name="IACCEPTSQLLOCALDBLICENSETERMS" Value="YES" /> 
    </MsiPackage> 

32-разрядная версия не будет работать в 64-битной системе, и она покажет массаж ошибок, но загрузчик будет продолжать без проблем

Программа не будет отображаться в списке установленных программ на панели управления и может потребовать перезагрузите систему для работы с окнами 8 и 10, введите «sqllocaldb info» в CMD или PowerShell, чтобы убедиться, что она должна возвращать имя экземпляра, обычно это «MSSQLLocalDB»

Sqllocaldb 2017 с окнами 7 будет иметь проблему если вы не установите dot net core sdk v2 (не проверяйте его самостоятельно, я использую sqllocaldb 2014) Error when start an instance of SQLLOCQLDB 2017 on windows 7 64bit (entry point not found except)

Не забывайте менять «SourceFile»

 Смежные вопросы

  • Нет связанных вопросов^_^