Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用SQL Server Express 2012的Wix my Bootstrap有什么问题_Wix - Fatal编程技术网

使用SQL Server Express 2012的Wix my Bootstrap有什么问题

使用SQL Server Express 2012的Wix my Bootstrap有什么问题,wix,Wix,我有一个引导项目,需要检测是否安装了SQL Server。如果已安装,则跳过安装过程。如果不是,则应安装SQL Express 2012。exe安装程序编译得很好,但是,当我测试安装程序时,我总是遇到这个错误,我找不到任何错误的原因。我测试的机器安装了SQL server,但它仍然检测不到安装了SQL。然后继续安装,但出现错误0x858c0014:进程返回错误: 无法执行EXE包。未能配置每台计算机的EXE程序包 这是我的wxs文件: <?xml version="1.0" encodi

我有一个引导项目,需要检测是否安装了SQL Server。如果已安装,则跳过安装过程。如果不是,则应安装SQL Express 2012。exe安装程序编译得很好,但是,当我测试安装程序时,我总是遇到这个错误,我找不到任何错误的原因。我测试的机器安装了SQL server,但它仍然检测不到安装了SQL。然后继续安装,但出现错误0x858c0014:进程返回错误: 无法执行EXE包。未能配置每台计算机的EXE程序包

这是我的wxs文件:

 <?xml version="1.0" encoding="UTF-8"?>
 <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
 xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"
 xmlns:dep="http://schemas.microsoft.com/wix/DependencyExtension">
 <?define InstanceName = "SQLEXPRESS" ?>
 <Bundle Name="EasyLobby11 Database Setup" Version="1.0.0.0" Manufacturer="Microsoft"      UpgradeCode="4f09f7d9-f894-42b2-a865-6ae460a09c7e">
<BootstrapperApplicationRef
 Id="WixStandardBootstrapperApplication.RtfLicense" />

<Chain>
  <PackageGroupRef Id="Sql2012Express"/>
</Chain>

</Bundle>
 <Fragment>
 <util:RegistrySearch
   Id="SqlInstanceKeyFound"
   Root="HKLM"
   Key="SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL"
   Value="InstanceName"
   Result="exists"
   Variable="SqlInstanceKeyFound" />

<util:RegistrySearch
    Id="SqlInstanceKey"
    Root="HKLM"
    Key="SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL"
    Value="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">
  <ExePackage
     Id="Sql2012Express"
     DisplayName="Installing SQL Server Express 2012"
     SourceFile="SQLEXPR_x86_ENU.exe"
     Name="SQLEXPR_x86_ENU.exe"
     DownloadUrl="http://download.microsoft.com/download/5/2/9/529FEF7B-2EFB-439E-A2D1-  A1533227CD69/SQLEXPR_x86_ENU.exe "
     Compressed="no"
     PerMachine="yes"
     Cache ="yes"
     InstallCondition="(Not SqlInstanceKeyFound) AND (NOT SqlInstanceFound)"
     DetectCondition= "SqlInstanceFound"
     Vital="yes"
     Permanent="yes"
         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=InstanceName /FEATURES=SQL /Q /HIDECONSOLE"
     RepairCommand="/ACTION=Repair /INSTANCENAME=InstanceName /Q /HIDECONSOLE">
    <ExitCode Value ="3010" Behavior="forceReboot" />
    <dep:Provides DisplayName="Net2 SQL Server 2012 Express"     Key="SQLServer2012Express,$(var.InstanceName)" Version="11.0.3000.0" />
  </ExePackage>     

  <ExePackage Id="Sql2012ExpressUpgrade"
    DisplayName="SQL Server 2012 Express Upgrade"
    Cache="no"
    Compressed="no"
    PerMachine="yes"
    Permanent="yes"
    Vital="yes"
    Name="SQLEXPR_x86_ENU.exe"
    SourceFile="SQLEXPR_x86_ENU.exe"
    DownloadUrl="http://download.microsoft.com/download/5/2/9/529FEF7B-2EFB-439E-A2D1-A1533227CD69/SQLEXPR_x86_ENU.exe "
    InstallCondition="(Not SqlInstanceKeyFound) AND (NOT SqlInstanceFound)"          
        InstallCommand="/ACTION=Upgrade /INSTANCENAME=InstanceName /Q /HIDECONSOLE /SkipRules=RebootRequiredCheck /IAcceptSQLServerLicenseTerms"

    DetectCondition="NOT (SqlInstanceFound AND (SqlVersion &lt; v11.0.0.0))">

    <ExitCode Value ="3010" Behavior="forceReboot" />
  </ExePackage>

  <ExePackage Id="Sql2012ExpressEditionUpgrade"
    DisplayName="SQL Server 2012 SP1 Express Patch"
    Cache="no"
    Compressed="no"
    PerMachine="yes"
    Permanent="yes"
    Vital="yes"
    Name="SQLEXPR_x86_ENU.exe"
    SourceFile="SQLEXPR_x86_ENU.exe"
    DownloadUrl="http://download.microsoft.com/download/5/2/9/529FEF7B-2EFB-439E-A2D1-A1533227CD69/SQLEXPR_x86_ENU.exe "
    InstallCondition="(Not SqlInstanceKeyFound) AND (NOT SqlInstanceFound)"          
    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))">
    <ExitCode Value ="3010" Behavior="forceReboot" />
  </ExePackage>
</PackageGroup>
</Fragment>
</Wix>


配置SQL是一项相当复杂的工作

我最近刚开始为我的项目进行Wix打包。 实际上,我从您的配置开始,对配置做了一些调整。 我还处理基于系统类型的x86和x64打包

如果它们与您无关,您可以省略其中任何一个。 因此,我正在发布配置的工作副本,以便它可以帮助您

<Fragment>

<?define InstanceName = "SQLEXPRESS" ?>

<util:RegistrySearch Id="SQL2012x64InstanceExists"
                    Variable="SQL2012x64InstanceExists"
                    Root="HKLM"
                    Key="SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL"
                    Value="$(var.InstanceName)"
                    Win64="yes"
                    Result="exists"/>
<util:RegistrySearch Id="SQL2012x64InstanceKey"
                     Variable="SQL2012x64InstanceKey"
                     Root="HKLM"
                     Key="SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL"
                     Value="$(var.InstanceName)"
                     Win64="yes"
                     After="SQL2012x64InstanceExists"
                     Condition="SQL2012x64InstanceExists" />
<util:RegistrySearch Id="SQL2012x64InstanceInstalled"
                     Variable="SQL2012x64InstanceInstalled"
                     Root="HKLM"
                     Key="SOFTWARE\Microsoft\Microsoft SQL Server\[SQL2012x64InstanceKey]"
                     Result="exists"
                     Win64="yes"
                     After="SQL2012x64InstanceKey"
                     Condition="SQL2012x64InstanceExists" />
<util:RegistrySearch Id="SQLx64Version"
                     Variable="SQLx64Version"
                     Root="HKLM"
                     Key="SOFTWARE\Microsoft\Microsoft SQL Server\[SQL2012x64InstanceKey]\Setup"
                     Value="Version"
                     Win64="yes"
                     After="SQL2012x64InstanceKey"
                     Condition="SQL2012x64InstanceInstalled" />

<util:RegistrySearch Id="SQL2012x86InstanceExists"
                     Variable="SQL2012x86InstanceExists"
                     Root="HKLM"
                     Key="SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL"
                     Value="$(var.InstanceName)"
                     Win64="no"
                     Result="exists"/>
<util:RegistrySearch Id="SQL2012x86InstanceKey"
                     Variable="SQL2012x86InstanceKey"
                     Root="HKLM"
                     Key="SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL"
                     Value="$(var.InstanceName)"
                     Win64="no"
                     After="SQL2012x86InstanceExists"
                     Condition="SQL2012x86InstanceExists" />
<util:RegistrySearch Id="SQL2012x86InstanceInstalled"
                     Variable="SQL2012x86InstanceInstalled"
                     Root="HKLM"
                     Key="SOFTWARE\Microsoft\Microsoft SQL Server\[SQL2012x86InstanceKey]"
                     Result="exists"
                     Win64="no"
                     After="SQL2012x86InstanceKey"
                     Condition="SQL2012x86InstanceExists" />
<util:RegistrySearch Id="SQLx86Version"
                     Variable="SQLx86Version"
                     Root="HKLM"
                     Key="SOFTWARE\Microsoft\Microsoft SQL Server\[SQL2012x86InstanceKey]\Setup"
                     Value="Version"
                     Win64="no"
                     After="SQL2012x86InstanceKey"
                     Condition="SQL2012x86InstanceInstalled" />

<PackageGroup Id="SQLServer2012Express">

  <ExePackage Id="SQL2012Expressx64"
             InstallCondition="VersionNT64 AND NOT SQL2012x64InstanceInstalled"
             SourceFile="$(var.MyDir)\SQLEXPR_x64_ENU.exe"
             DisplayName="Installing Microsoft® SQL Server® 2012 - Express Edition..."
             InstallCommand="/ACTION=Install /INSTANCENAME=SQLEXPRESS /FEATURES=SQLENGINE /Q /HIDECONSOLE /SkipRules=RebootRequiredCheck /IAcceptSQLServerLicenseTerms /SQLSVCSTARTUPTYPE=Automatic /SQLSVCACCOUNT=&quot;NT AUTHORITY\NETWORK SERVICE&quot; /AGTSVCACCOUNT=&quot;NT AUTHORITY\NETWORK SERVICE&quot; /ASSYSADMINACCOUNTS=BUILTIN\Administrators /SQLSYSADMINACCOUNTS=BUILTIN\Administrators /BROWSERSVCSTARTUPTYPE=Disabled /ADDCURRENTUSERASSQLADMIN=true /TCPENABLED=1"
             Permanent="yes"/>
  <ExePackage Id="SQL2012Updatex64"
              InstallCondition="VersionNT64 AND (SQL2012x64InstanceInstalled AND SQLx64Version &lt; v11.0.0.0)"
              DisplayName="Upgrading SQL Server to SQL Server Express 2012..."
              InstallCommand='/IACCEPTSQLSERVERLICENSETERMS /HIDECONSOLE /ACTION=Upgrade /QUIET=True /INSTANCENAME=SQLEXPRESS /SkipRules=RebootRequiredCheck'
              SourceFile="$(var.MyDir)\SQLEXPR_x64_ENU.exe"
              Permanent="yes"/>

  <ExePackage Id="SQL2012Expressx86"
              InstallCondition="NOT VersionNT64 AND NOT SQL2012x86InstanceInstalled"
              SourceFile="$(var.MyDir)\SQLEXPR_x86_ENU.exe"
              DisplayName="Installing Microsoft® SQL Server® 2012 - Express Edition..."
              InstallCommand="/ACTION=Install /INSTANCENAME=SQLEXPRESS /FEATURES=SQLENGINE /Q /HIDECONSOLE /SkipRules=RebootRequiredCheck /IAcceptSQLServerLicenseTerms /SQLSVCSTARTUPTYPE=Automatic /SQLSVCACCOUNT=&quot;NT AUTHORITY\NETWORK SERVICE&quot; /AGTSVCACCOUNT=&quot;NT AUTHORITY\NETWORK SERVICE&quot; /ASSYSADMINACCOUNTS=BUILTIN\Administrators /SQLSYSADMINACCOUNTS=BUILTIN\Administrators /BROWSERSVCSTARTUPTYPE=Disabled /ADDCURRENTUSERASSQLADMIN=true /TCPENABLED=1"
              Permanent="yes"/>
  <ExePackage Id="SQL2012Updatex86"
              InstallCondition="NOT VersionNT64 AND (SQL2012x86InstanceInstalled AND SQLx86Version &lt; v11.0.0.0)"
              DisplayName="Upgrading SQL Server to SQL Server Express 2012..."
              InstallCommand='/IACCEPTSQLSERVERLICENSETERMS /HIDECONSOLE /ACTION=Upgrade /QUIET=True /INSTANCENAME=SQLEXPRESS /SkipRules=RebootRequiredCheck'
              SourceFile="$(var.MyDir)\SQLEXPR_x86_ENU.exe"
              Permanent="yes"/>

</PackageGroup>

希望对你有帮助

--纳加·斯雷尼瓦斯·古普塔五世