I'm using clickOnce and deploying an installer with it.
I have tried various settings. Using SQL Server 2008 Express and SQL Server 2012 Express as prerequisite is all ok (I've dowloaded them and set the option of clickonce "download prerequisites from the same path of app").
Now I'm trying to do the same thing with SQL Server 2014 Express.
Since the SQL Server 2014 Express package isn't alredy done line 2008 and 2012 versiones, I'm trying to create it.
I have done and it seems to work, but while installing it gives error number -2054422506. It is a very generic error and I don't understand it.
It appears a pop up saying the installation is stopped because it is an error installing SQL Server Express 2014 and to look the log for more infos. The log only says:
Installing using command
'C:\Users\VIRTUA~1\AppData\Local\Temp\VSD24F4.tmp\SqlExpress2014\
SQLEXPR32_x86_ITA.EXE' and parameters '/q /action=Install /features=SQL
/instancename=SQLEXPRESS /securitymode=SQL /sapwd=passwd
/sqlsvcaccount="NT Authority\Network Service'
Process exited with code -2054422506
Status of package 'SQL Server 2014 Express' after install is 'InstallFailed'
So, I've tried to install SQL Server 2014 Express manually, without ClickOnce, and it works. So I think I've made some mess in the xml file of the package.
My package is so build (in C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\Bootstrapper\Packages):
\SqlExpress2014
\it
-SQLEXPR32_x86_ITA.exe
-SQLEXPR_x64_ITA.exe
-eula.rtf
-package.xml
-product.xml
-SqlExpressChk.exe
This is my package.xml file:
<?xml version="1.0" encoding="UTF-8"?>
<Package
xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper"
Name="DisplayName"
Culture="Culture"
LicenseAgreement="eula.rtf">
<PackageFiles CopyAllPackageFiles="false">
<PackageFile Name="SQLEXPR32_x86_ITA.EXE"/>
<PackageFile Name="SQLEXPR_x64_ITA.EXE" />
<PackageFile Name="eula.rtf"/>
</PackageFiles>
<InstallChecks>
<ExternalCheck Property="SQLExpressChk" PackageFile="SqlExpressChk.exe" Arguments="11.0.2100 1040"/>
</InstallChecks>
<Commands Reboot="Defer">
<!-- Defines a new installation (x86)
/skiprules=RebootRequiredCheck /enableranu=1 /AddCurrentUserAsSqlAdmin /hideconsole
-->
<Command PackageFile="SQLEXPR32_x86_ITA.EXE"
Arguments='/q /action=Install /features=SQL /instancename=SQLEXPRESS /securitymode=SQL /sapwd=passwd /sqlsvcaccount="NT Authority\Network Service"
/IAcceptSqlServerLicenseTerms /SQLSVCPASSWORD="passwd" /SQLSYSADMINACCOUNTS="NT Authority\Network Service" /AGTSVCACCOUNT="NT AUTHORITY\Network Service"'
EstimatedInstalledBytes="225000000"
EstimatedInstallSeconds="420">
<InstallConditions>
<FailIf Property="VersionNT" Compare="ValueNotExists" String="InvalidPlatformOS"/>
<FailIf Property="VersionNT" Compare="VersionLessThan" Value="6.0.0" String="InvalidPlatformOS"/>
<FailIf Property="VersionNT" Compare="VersionLessThan" Value="6.0.2" String="InvalidPlatformOSServicePack"/>
<FailIf Property="VersionNT" Compare="VersionEqualTo" Value="6.1.0" String="InvalidPlatformOSServicePack"/>
<FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired"/>
<FailIf Property="SQLExpressChk" Compare="ValueEqualTo" Value="-1" String="InvalidUpgradeNotExpress"/>
<FailIf Property="SQLExpressChk" Compare="ValueEqualTo" Value="-2" String="InvalidUpgradeNotExpressCore"/>
<FailIf Property="SQLExpressChk" Compare="ValueEqualTo" Value="-3" String="InvalidUpgradeLanguage"/>
<FailIf Property="SQLExpressChk" Compare="ValueEqualTo" Value="-4" String="InvalidUpgradeWoW"/>
<FailIf Property="SQLExpressChk" Compare="ValueLessThan" Value="-4" String="GeneralFailure"/>
<BypassIf Property="ProcessorArchitecture" Compare="ValueNotEqualTo" Value="Intel"/>
<BypassIf Property="SQLExpressChk" Compare="ValueNotEqualTo" Value="1"/>
</InstallConditions>
<ExitCodes>
<ExitCode Value="0" Result="Success"/>
<ExitCode Value="1641" Result="SuccessReboot"/>
<ExitCode Value="3010" Result="SuccessReboot"/>
<!-- 0x84BE0BC2 (1214,3010) -->
<ExitCode Value="-2067919934" Result="FailReboot"/>
<!-- 0x84C10BC2 (1217,3010) -->
<ExitCode Value="-2067723326" Result="FailReboot"/>
<!-- 0x84BE0007 (1214,7) -->
<ExitCode Value="-2067922937" Result="Fail" String="AdminRequired"/>
<!-- 0x84C4001F (1220,31) -->
<ExitCode Value="-2067529697" Result="Fail" String="AdminRequired"/>
<!-- 0x84BE0001 (1214,1)-->
<ExitCode Value="-2067922943" Result="Fail" String="InvalidPlatformOSServicePack"/>
<!-- 0x84C4000E (1220,14) -->
<ExitCode Value="-2067529714" Result="Fail" String="InvalidPlatformOSLanguage"/>
<!-- 0x84C4000B (1220,11) -->
<ExitCode Value="-2067529717" Result="Fail" String="AnotherInstanceRunning"/>
<!-- 0x84BE01F8 (1214,504) -->
<ExitCode Value="-2067922440" Result="Fail" String="BetaComponentsFailure"/>
<!-- 0x84BE01FA (1214,506) -->
<ExitCode Value="-2067922438" Result="Fail" String="BetaComponentsFailure"/>
<!-- 0x84BE0202 (1214,514) -->
<ExitCode Value="-2067922430" Result="Fail" String="InvalidPlatformArchitecture"/>
<!-- 0x84BE0203 (1214,515) -->
<ExitCode Value="-2067922429" Result="Fail" String="InvalidPlatformArchitecture"/>
<ExitCode Value="216" Result="Fail" String="InvalidPlatformArchitecture"/>
<DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" />
</ExitCodes>
</Command>
<!-- Defines an upgrade installation (x86) -->
<Command PackageFile="SQLEXPR32_x86_ITA.EXE"
Arguments="/q /hideconsole /action=Upgrade /instancename=SQLEXPRESS /securitymode=SQL /sapwd=passwd /IAcceptSqlServerLicenseTerms /skiprules=RebootRequiredCheck"
EstimatedInstalledBytes="225000000"
EstimatedInstallSeconds="420">
<InstallConditions>
<BypassIf Property="ProcessorArchitecture" Compare="ValueNotEqualTo" Value="Intel"/>
<BypassIf Property="SQLExpressChk" Compare="ValueNotEqualTo" Value="2"/>
</InstallConditions>
<ExitCodes>
<ExitCode Value="0" Result="Success"/>
<ExitCode Value="1641" Result="SuccessReboot"/>
<ExitCode Value="3010" Result="SuccessReboot"/>
<!-- 0x84BE0BC2 (1214,3010) -->
<ExitCode Value="-2067919934" Result="FailReboot"/>
<!-- 0x84C10BC2 (1217,3010) -->
<ExitCode Value="-2067723326" Result="FailReboot"/>
<!-- 0x84BE0007 (1214,7) -->
<ExitCode Value="-2067922937" Result="Fail" String="AdminRequired"/>
<!-- 0x84C4001F (1220,31) -->
<ExitCode Value="-2067529697" Result="Fail" String="AdminRequired"/>
<!-- 0x84BE0001 (1214,1)-->
<ExitCode Value="-2067922943" Result="Fail" String="InvalidPlatformOSServicePack"/>
<!-- 0x84C4000E (1220,14) -->
<ExitCode Value="-2067529714" Result="Fail" String="InvalidPlatformOSLanguage"/>
<!-- 0x84C4000B (1220,11) -->
<ExitCode Value="-2067529717" Result="Fail" String="AnotherInstanceRunning"/>
<!-- 0x84BE01F8 (1214,504) -->
<ExitCode Value="-2067922440" Result="Fail" String="BetaComponentsFailure"/>
<!-- 0x84BE01FA (1214,506) -->
<ExitCode Value="-2067922438" Result="Fail" String="BetaComponentsFailure"/>
<!-- 0x84BE0202 (1214,514) -->
<ExitCode Value="-2067922430" Result="Fail" String="InvalidPlatformArchitecture"/>
<!-- 0x84BE0203 (1214,515) -->
<ExitCode Value="-2067922429" Result="Fail" String="InvalidPlatformArchitecture"/>
<ExitCode Value="216" Result="Fail" String="InvalidPlatformArchitecture"/>
<DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" />
</ExitCodes>
</Command>
<!-- Defines a new installation (amd64) -->
<Command PackageFile="SQLEXPR_x64_ITA.EXE"
Arguments='/q /hideconsole /action=Install /features=SQL /instancename=SQLEXPRESS /securitymode=SQL /sapwd=passwd /enableranu=1 /sqlsvcaccount="NT Authority\Network Service" /AddCurrentUserAsSqlAdmin /IAcceptSqlServerLicenseTerms /skiprules=RebootRequiredCheck'
EstimatedInstalledBytes="225000000"
EstimatedInstallSeconds="420">
<InstallConditions>
<BypassIf Property="ProcessorArchitecture" Compare="ValueNotEqualTo" Value="amd64"/>
<BypassIf Property="SQLExpressChk" Compare="ValueNotEqualTo" Value="1"/>
</InstallConditions>
<ExitCodes>
<ExitCode Value="0" Result="Success"/>
<ExitCode Value="1641" Result="SuccessReboot"/>
<ExitCode Value="3010" Result="SuccessReboot"/>
<!-- 0x84BE0BC2 (1214,3010) -->
<ExitCode Value="-2067919934" Result="FailReboot"/>
<!-- 0x84C10BC2 (1217,3010) -->
<ExitCode Value="-2067723326" Result="FailReboot"/>
<!-- 0x84BE0007 (1214,7) -->
<ExitCode Value="-2067922937" Result="Fail" String="AdminRequired"/>
<!-- 0x84C4001F (1220,31) -->
<ExitCode Value="-2067529697" Result="Fail" String="AdminRequired"/>
<!-- 0x84BE0001 (1214,1)-->
<ExitCode Value="-2067922943" Result="Fail" String="InvalidPlatformOSServicePack"/>
<!-- 0x84C4000E (1220,14) -->
<ExitCode Value="-2067529714" Result="Fail" String="InvalidPlatformOSLanguage"/>
<!-- 0x84C4000B (1220,11) -->
<ExitCode Value="-2067529717" Result="Fail" String="AnotherInstanceRunning"/>
<!-- 0x84BE01F8 (1214,504) -->
<ExitCode Value="-2067922440" Result="Fail" String="BetaComponentsFailure"/>
<!-- 0x84BE01FA (1214,506) -->
<ExitCode Value="-2067922438" Result="Fail" String="BetaComponentsFailure"/>
<!-- 0x84BE0202 (1214,514) -->
<ExitCode Value="-2067922430" Result="Fail" String="InvalidPlatformArchitecture"/>
<!-- 0x84BE0203 (1214,515) -->
<ExitCode Value="-2067922429" Result="Fail" String="InvalidPlatformArchitecture"/>
<ExitCode Value="216" Result="Fail" String="InvalidPlatformArchitecture"/>
<DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" />
</ExitCodes>
</Command>
<!-- Defines an upgrade installation (amd64) -->
<Command PackageFile="SQLEXPR_x64_ITA.EXE"
Arguments="/q /hideconsole /action=Upgrade /instancename=SQLEXPRESS /securitymode=SQL /sapwd=passwd /IAcceptSqlServerLicenseTerms /skiprules=RebootRequiredCheck"
EstimatedInstalledBytes="225000000"
EstimatedInstallSeconds="420">
<InstallConditions>
<BypassIf Property="ProcessorArchitecture" Compare="ValueNotEqualTo" Value="amd64"/>
<BypassIf Property="SQLExpressChk" Compare="ValueNotEqualTo" Value="2"/>
</InstallConditions>
<ExitCodes>
<ExitCode Value="0" Result="Success"/>
<ExitCode Value="1641" Result="SuccessReboot"/>
<ExitCode Value="3010" Result="SuccessReboot"/>
<!-- 0x84BE0BC2 (1214,3010) -->
<ExitCode Value="-2067919934" Result="FailReboot"/>
<!-- 0x84C10BC2 (1217,3010) -->
<ExitCode Value="-2067723326" Result="FailReboot"/>
<!-- 0x84BE0007 (1214,7) -->
<ExitCode Value="-2067922937" Result="Fail" String="AdminRequired"/>
<!-- 0x84C4001F (1220,31) -->
<ExitCode Value="-2067529697" Result="Fail" String="AdminRequired"/>
<!-- 0x84BE0001 (1214,1)-->
<ExitCode Value="-2067922943" Result="Fail" String="InvalidPlatformOSServicePack"/>
<!-- 0x84C4000E (1220,14) -->
<ExitCode Value="-2067529714" Result="Fail" String="InvalidPlatformOSLanguage"/>
<!-- 0x84C4000B (1220,11) -->
<ExitCode Value="-2067529717" Result="Fail" String="AnotherInstanceRunning"/>
<!-- 0x84BE01F8 (1214,504) -->
<ExitCode Value="-2067922440" Result="Fail" String="BetaComponentsFailure"/>
<!-- 0x84BE01FA (1214,506) -->
<ExitCode Value="-2067922438" Result="Fail" String="BetaComponentsFailure"/>
<!-- 0x84BE0202 (1214,514) -->
<ExitCode Value="-2067922430" Result="Fail" String="InvalidPlatformArchitecture"/>
<!-- 0x84BE0203 (1214,515) -->
<ExitCode Value="-2067922429" Result="Fail" String="InvalidPlatformArchitecture"/>
<ExitCode Value="216" Result="Fail" String="InvalidPlatformArchitecture"/>
<DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" />
</ExitCodes>
</Command>
</Commands>
<Strings>
<String Name="DisplayName">SQL Server 2014 Express</String>
<String Name="Culture">it</String>
<String Name="SqlExpr32Exe">http://download.microsoft.com/download/1/6/E/16E343FB-7961-457C-A9C9-E6919F2B7188/Express%2032BIT/SQLEXPR_x86_ITA.exe</String>
<String Name="SqlExpr64Exe">http://download.microsoft.com/download/1/6/E/16E343FB-7961-457C-A9C9-E6919F2B7188/Express%2064BIT/SQLEXPR_x64_ITA.exe</String>
<String Name="AdminRequired">Non si dispone delle autorizzazioni necessarie per installare SQL Server 2014 Express. Rivolgersi all'amministratore.</String>
<String Name="GeneralFailure">Errore durante il tentativo di installazione di SQL Server 2014 Express.</String>
<String Name="InvalidPlatformOS">La versione del sistema operativo corrente non supporta SQL Server 2014 Express.</String>
<String Name="InvalidPlatformOSServicePack">Il sistema operativo corrente non soddisfa i requisiti di livello di Service Pack per SQL Server 2014 Express. Installare il Service Pack più recente dall'Area download Microsoft all'indirizzo http://www.microsoft.com/downloads prima di continuare l'installazione.</String>
<String Name="InvalidPlatformOSLanguage">La versione italiana di SQL Server 2014 Express può essere installata unicamente in un sistema operativo Windows nella stessa lingua.</String>
<String Name="AnotherInstanceRunning">Un'altra istanza del programma di installazione è già in esecuzione. Per continuare, è necessario attendere il completamento di tale istanza.</String>
<String Name="BetaComponentsFailure">È stata rilevata una versione beta di .NET Framework o SQL Server nel computer. Disinstallare le versioni beta precedenti dei componenti di SQL Server 2014, dei file di supporto di SQL Server o di .NET Framework prima di continuare.</String>
<String Name="InvalidPlatformArchitecture">Questa versione di SQL Server 2014 Express non è supportata per l'architettura del processore corrente.</String>
<String Name="InvalidUpgradeNotExpress">L'istanza di SQL Server denominata 'SQLEXPRESS' non è un'istanza di SQL Server Express. Impossibile eseguirne l'aggiornamento a SQL Server 2014 Express.</String>
<String Name="InvalidUpgradeNotExpressCore">L'istanza di SQL Server Express denominata 'SQLEXPRESS' contiene componenti non inclusi in SQL Server 2014 Express. Impossibile eseguire l'aggiornamento di tale istanza in SQL Server 2014 Express. Utilizzare SQL Server 2014 Express with Advanced Services.</String>
<String Name="InvalidUpgradeLanguage">L'istanza di SQL Server Express denominata 'SQLEXPRESS' è una versione in una lingua diversa rispetto a SQL Server 2014 Express. Impossibile eseguire l'aggiornamento di tale istanza.</String>
<String Name="InvalidUpgradeWoW">Impossibile eseguire l'aggiornamento dell'istanza esistente di SQL Server Express (x64 WoW) denominata 'SQLEXPRESS' mediante SQL Server 2014 Express (x64). Disinstallare l'istanza esistente di SQL Server Express e riprovare a installare SQL Server 2014 Express (x64).</String>
</Strings>
</Package>
And this is the product.xml:
<?xml version="1.0" encoding="utf-8"?>
<!-- SQL Express 2014 VS Bootstrapper : product.xml : Language neutral information -->
<Product xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper" ProductCode="Microsoft.SqlServer.Express.12.0">
<RelatedProducts>
<EitherProducts>
<DependsOnProduct Code=".NETFramework,Version=v4.5" />
<DependsOnProduct Code=".NETFramework,Version=v4.0" />
</EitherProducts>
<!-- Also depends on MSI4.5 or greater, which is included on all of the OS levels supported (see package.xml) -->
<IncludesProduct Code="Microsoft.Sql.Server.Express.1.0" />
<IncludesProduct Code="Microsoft.Sql.Server.Express.9.2" />
<IncludesProduct Code="Microsoft.Sql.Server.Express.10.0" />
<IncludesProduct Code="Microsoft.SqlServer.Express.10.5" />
<IncludesProduct Code="Microsoft.SqlServer.Express.11.0" />
</RelatedProducts>
<PackageFiles>
<PackageFile Name="SqlExpressChk.exe" />
</PackageFiles>
</Product>
I've copied the SqlExpressChk.exe file from the SQL Server 2012 Express package, hoping it is the same (2008 and 2012 versions seems the same, so I supposed it also for the 2014).
I've delete the part in package.xml about the publicKey, since I don't know it and, further, I think I don't need it.
In the same file, I've inserted custom parameters, first like in the 2008 and 2012 versions, then doing some attempts (without success).
Did anyone have this problem? How did you have manage it?
NOTE: I'm using my clickOnce deploy in an empty virtual machine, so there aren't any conflicts o something similar.
EDIT: more attempts, more failures, always the same error! I'm deleting the optional stuff to study better the core of the xml, but still no success.. does microsoft have a package of sql server 2014 express?
EDIT AGAIN: I've discovered that sql server 2014 is still a pre-release... the release will be the 1st april.. does this can be a problem??
UPDATE: I think the problem is in the parameter I'm giving to the installer. I have see the docs of msdn abount the installing parameters for sql server express 2014 (the same for the other versions, except for some little diffs). These are my paramenters:
Arguments='/q /action=Install /features=SQL /instancename=SQLEXPRESS /securitymode=SQL /sapwd=passwd /sqlsvcaccount="NT Authority\Network Service"
/IAcceptSqlServerLicenseTerms
/enableranu=1 /AddCurrentUserAsSqlAdmin /hideconsole'
These work well on 2008 and 2012... here not...why? The error code is the same written above.
Thanks, this was very useful. In case anyone needs English SQL Server Express 2014 equivalent:
folder structure:
product.xml:
package.xml:
Ok, I've done it!!!!
I post here the files I've used for it.
This is the tree of the folders:
This is the product.xml:
And this is the package.xml:
The SqlExpressChk.exe is the same file you can find in your SqlServer 2012/2008 Express packages in C:\Program Files (x86)\Microsoft SDKs\Windows\yourVersion\Bootstrapper\Packages.
The SQLEXPR32_x86_ITA.exe and SQLEXPR_x64_ITA.exe: I've simply downloaded them from microsoft site, but you don't need them if you use the online installation.
The eula.rtf is this, after a renaming.
The only thing you should do is change the command parameters in the file package.xml. Hoping this can be useful for someone. :)