gpt4 book ai didi

sql-server - 从 WiX 引导 SQL Express?

转载 作者:行者123 更新时间:2023-12-02 03:59:25 25 4
gpt4 key购买 nike

我正在开发 WPF 应用程序,并使用 WiX 作为安装程序。

我想开始使用 SQL Express 2012,但希望首先解决安装程序问题。

我正在寻找使用 WiX 检测、引导、安装、升级和卸载 SQL Express 2012 的完整示例(尽管部分示例也很有用)。

此外,到目前为止我在网上发现的大多数检测逻辑都使用注册表项。但是,Microsoft 建议改用 WMI(请参阅 http://blogs.msdn.com/b/sqlexpress/archive/2006/07/29/faq-detecting-sql-server-2005-using-wmi.aspx)。使用 WiX 可以吗?

最佳答案

这就是我所拥有的,希望它能有所帮助:

<?define ServerInstall="SomeCondition" ?>

<?define InstanceName = "YOUR_INSTANCE" ?>
<?define SqlWebLink = http://download.microsoft.com/download/5/2/9/529FEF7B-2EFB-439E-A2D1-A1533227CD69/SQLEXPR_x86_ENU.exe ?>

<Variable Name="SqlVariable" Type="string" Value="/SAPWD=some_password" Hidden="yes" />

<!-- Read SQL Server keys to find current instance and version -->
<util:RegistrySearch
Id="SqlInstanceKeyFound"
Root="HKLM" Key="SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" Value="$(var.InstanceName)"
Result="exists" Variable="SqlInstanceKeyFound" />
<util:RegistrySearch
Id="SqlInstanceKey"
Root="HKLM" Key="SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" Value="$(var.InstanceName)"
Variable="SqlInstanceKey" After="SqlInstanceKeyFound" Condition="SqlInstanceKeyFound" />
<util:RegistrySearch
Id="SqlInstanceFound"
Root="HKLM" Key="SOFTWARE\Microsoft\Microsoft SQL Server\[SqlInstanceKey]"
Result="exists" Variable="SqlInstanceFound" After="SqlInstanceKey" Condition="SqlInstanceKeyFound" />
<util:RegistrySearch
Id="SqlVersion"
Root="HKLM" Key="SOFTWARE\Microsoft\Microsoft SQL Server\[SqlInstanceKey]\Setup" Value="Version"
Variable="SqlVersion" After="SqlInstanceKey" Condition="SqlInstanceFound" />

<PackageGroup Id="Sql2012Express">
<!--
SQL Server 2012 Express - Install new instance
http://msdn.microsoft.com/en-us/library/ms144259.aspx
SQL Server Express requires WIndows Installer 4.5
RepairCommand="/ACTION=Repair /INSTANCENAME=$(var.InstanceName) /Q /HIDECONSOLE"
-->
<ExePackage Id="Sql2012Express"
DisplayName="SQL Server 2012 Express"
Cache="yes"
Compressed="no"
PerMachine="yes"
Permanent="no"
Vital="yes"
Name="Redist\SQLEXPR_x86_ENU.exe"
SourceFile="..\Packages\SQLEXPR_x86_ENU.exe"
DownloadUrl="$(var.SqlWebLink)"
InstallCommand="/ACTION=Install /INSTANCENAME=$(var.InstanceName) /FEATURES=SQL /SECURITYMODE=SQL [SqlVariable] /TCPENABLED=1 /SQLSVCACCOUNT=&quot;NT AUTHORITY\NETWORK SERVICE&quot; /SQLSVCSTARTUPTYPE=Manual /SQLSYSADMINACCOUNTS=BUILTIN\Administrators /ADDCURRENTUSERASSQLADMIN=FALSE /Q /HIDECONSOLE /SkipRules=RebootRequiredCheck /IAcceptSQLServerLicenseTerms"
UninstallCommand="/Action=Uninstall /INSTANCENAME=$(var.InstanceName) /FEATURES=SQL /Q /HIDECONSOLE"
DetectCondition="SqlInstanceFound"
InstallCondition="$(var.ServerInstall)">
<ExitCode Value ="3010" Behavior="forceReboot" />
<dep:Provides DisplayName="Net2 SQL Server 2012 Express" Key="SQLServer2012Express,$(var.InstanceName)" Version="11.0.3000.0" />
</ExePackage>

<!--
SQL Server 2012 Express - Upgrade existing pre-SQL 2012 instance
-->
<ExePackage Id="Sql2012ExpressUpgrade"
DisplayName="SQL Server 2012 Express Upgrade"
Cache="no"
Compressed="no"
PerMachine="yes"
Permanent="yes"
Vital="yes"
Name="Redist\SQLEXPR_x86_ENU.exe"
SourceFile="..\Packages\SQLEXPR_x86_ENU.exe"
DownloadUrl="$(var.SqlWebLink)"
InstallCommand="/ACTION=Upgrade /INSTANCENAME=$(var.InstanceName) /Q /HIDECONSOLE /SkipRules=RebootRequiredCheck /IAcceptSQLServerLicenseTerms"
DetectCondition="NOT (SqlInstanceFound AND (SqlVersion &lt; v11.0.0.0))"
InstallCondition="$(var.ServerInstall)">
<ExitCode Value ="3010" Behavior="forceReboot" />
</ExePackage>

<!--
SQL Server 2012 SP1 Express - Upgrade existing SQL 2012 instance to SP1
-->
<ExePackage Id="Sql2012ExpressEditionUpgrade"
DisplayName="SQL Server 2012 SP1 Express Patch"
Cache="no"
Compressed="no"
PerMachine="yes"
Permanent="yes"
Vital="yes"
Name="Redist\SQLEXPR_x86_ENU.exe"
SourceFile="..\Packages\SQLEXPR_x86_ENU.exe"
DownloadUrl="$(var.SqlWebLink)"
InstallCommand="/ACTION=Patch /INSTANCENAME=$(var.InstanceName) /Q /HIDECONSOLE /SkipRules=RebootRequiredCheck /IAcceptSQLServerLicenseTerms"
DetectCondition="NOT (SqlInstanceFound AND (SqlVersion &gt; v11.0.0.0) AND (SqlVersion &lt; v11.0.3000.0))"
InstallCondition="$(var.ServerInstall)">
<ExitCode Value ="3010" Behavior="forceReboot" />
</ExePackage>

您需要更改安装命令以满足您的要求。

关于sql-server - 从 WiX 引导 SQL Express?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18930854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com