2013-05-16 1 views
3

내 애플리케이션 전제 조건 중 하나로서 MS SQL Server가 필요합니다. 이제는 MS SQL Server 2005 Express Edition이있는 경우 클라이언트 컴퓨터를 MS SQL Server 2008 R2 익스프레스 에디션으로 업그레이드하려고합니다. . 나는 그것을 구현할 수 없습니다. 아래의 Wix 코드는 SQL 서버가 클라이언트 컴퓨터에 설치되어 있지 않을 때 MS SQL 서버 2008 R2 익스프레스 에디션을 다운로드하고 설치하는데 사용하고 있습니다.전제 조건 소프트웨어를 업그레이드하는 방법 Wix를 사용하는 MS SQL 서버

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" 
    xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"> 
<Fragment> 
<util:RegistrySearch Root="HKLM" 
        Key="SOFTWARE\Microsoft\Microsoft SQL Server\MyInstanceName" 
        Variable="Instance" 
        Result="exists" 
        /> 
    <PackageGroup Id="SqlServer2008R2"> 
    <ExePackage InstallCommand='/q /action=INSTALL /HIDECONSOLE /IACCEPTSQLSERVERLICENSETERMS=1 /FEATURES=SQLEngine /INSTANCENAME=MyInstanceName /SQLSVCACCOUNT="NT AUTHORITY\SYSTEM" /SECURITYMODE=SQL /SAPWD=abc#Wd1234 /ADDCURRENTUSERASSQLADMIN=TRUE /SQLSYSADMINACCOUNTS="NT AUTHORITY\SYSTEM" /TCPENABLED=1 /NPENABLED=1' 
       InstallCondition="NOT VersionNT64" 
       DetectCondition="Instance" 
       Compressed="no" 
       Vital="yes" 
       PerMachine="yes" 
       Name="SQLEXPR32_x86_ENU.exe" 
       Permanent="yes" 
       Cache="no" 
       DownloadUrl="http://download.microsoft.com/download/5/1/A/51A153F6-6B08-   4F94-A7B2-BA1AD482BC75/SQLEXPR32_x86_ENU.exe" 
      > 
    <RemotePayload 
     Size="60995936" 
     ProductName="Microsoft SQL Server 2008 R2 Express" 
     Description="Microsoft SQL Server 2008 R2 Express" 
     Version="10.50.1600.1" 
     CertificatePublicKey="672605E36DD71EC6B8325B91C5FE6971390CB6B6" 
     CertificateThumbprint="9617094A1CFB59AE7C1F7DFDB6739E4E7C40508F" 
     Hash="ACF5494D18EDF117A2683D66A96FB8954F98D86D" 
     /> 
    </ExePackage> 
    </PackageGroup> 
    </Fragment> 
</Wix> 

답변

1

/action=INSTALL 매개 변수를 사용하여 인스턴스를 업그레이드하는 데는 새 인스턴스 만 설치할 수 없습니다. 당신은 레지스트리에 따라 올바른 사람이 당신이 검색 선택합니다 /action=UPGRADE 및 설정 InstallCondition 또 다른 ExePackage을 만들어야합니다 :

<ExePackage Id="SqlExpress2008R2_UpgradeNamedInstance" 
       Cache="no" 
       Compressed="no" 
       PerMachine="yes" 
       Permanent="no" 
       Vital="yes" 
       InstallCommand="/QS /ACTION=Upgrade /IACCEPTSQLSERVERLICENSETERMS /BROWSERSVCSTARTUPTYPE=Automatic /INSTANCENAME=&quot;[SqlInstance]&quot;" 
       Name="redist\SQLEXPR_x86_ENU.exe" 
       DownloadUrl="http://download.microsoft.com/download/D/1/8/D1869DEC-2638-4854-81B7-0F37455F35EA/SQLEXPR_x86_ENU.exe" 
       InstallCondition="SqlInstance AND SqlServerInstalled AND NOT SQLServer2008R2Installed"> 
    <RemotePayload ProductName="SQL Server 2008 R2 Express SP1" 
        Description="SQL Server 2008 R2 Express SP1" 
        CertificatePublicKey="5C499B10F7EF186DC729991A262AB52066423909" 
        CertificateThumbprint="93859EBF98AFDEB488CCFA263899640E81BC49F1" 
        Hash="6F399D641F322A3E47E3DD605F2A2EDF21074375" 
        Size="111274848" 
        Version="10.50.2500.0" /> 
    </ExePackage>