2014-11-06 2 views
3

예제 IIS Express 8.0에 따라 일부 필수 구성 요소가있는 WiX-Bootstrapper 번들을 만들었습니다. 가상 컴퓨터에서 IIS 설치가 잘됩니다. 다음 단계에서는 일부 IIS 기능을 활성화하려고합니다. 는 그래서 MSI 프로젝트의 Product.wxs에서 다음 줄을 시도 :WiX-Bundle을 설치 한 후 IIS 기능을 활성화하는 방법은 무엇입니까?

<Product> 
    [...] 
    <Property Id="INSTALLIISPROP" 
       Value="C:\Windows\System32\dism.exe"></Property> 
    <CustomAction Id="InstallIISCA" 
        Return="check" 
        Property="INSTALLIISPROP" 
        Execute="deferred" 
        HideTarget="yes" 
        Impersonate="yes" 
        ExeCommand="/Online /Enable-Feature /FeatureName:IIS-WebServerRole /FeatureName:IIS-WebServer /FeatureName:IIS-CommonHttpFeatures /FeatureName:IIS-StaticContent /FeatureName:IIS-DefaultDocument /FeatureName:IIS-RequestFiltering /FeatureName:IIS-IPSecurity [...]></CustomAction> 
    <InstallExecuteSequence> 
     <Custom Action="InstallIISCA" 
       Before="InstallFinalize"> 
      <![CDATA[NOT Installed AND IISMAJORVERSION]]> 
     </Custom> 
    </InstallExecuteSequence> 
</Product> 

을하지만 이것은 아무것도하지 않습니다. IIS 기능이 활성화되어 있지 않습니다. 내가 뭘 잘못 했니?

IIS에서 설치를위한 마지막 WXS 파일에서 다음

: 그것이 Bundle.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"> 
    <Fragment> 
     <util:RegistrySearch Root="HKLM" 
          Key="SOFTWARE\Microsoft\InetStp\Components" 
          Value="Install" 
          Variable="IisExpressX64" 
          Win64="yes"/> 
     <util:RegistrySearch Root="HKLM" 
          Key="SOFTWARE\Microsoft\InetStp\Components" 
          Value="Install" 
          Variable="IisExpressX86"/> 

     <PackageGroup Id="IisExpress_8_0"> 
      <MsiPackage Id="IisExpress8_0_X64" 
         Cache="yes" 
         Compressed="yes" 
         Permanent="yes" 
         Vital="yes" 
         SuppressSignatureVerification="yes" 
         SourceFile=".\Prerequisites\iis\iisexpress_8_0_RTM_x64_de-DE.msi" 
         InstallCondition="NOT IisExpressX86 AND VersionNT64"/> 

      <MsiPackage Id="IisExpress8_0_X86" 
         Cache="yes" 
         Compressed="yes" 
         Permanent="yes" 
         Vital="yes" 
         SuppressSignatureVerification="yes" 
         SourceFile=".\Prerequisites\iis\iisexpress_8_0_RTM_x86_de-DE.msi" 
         InstallCondition="NOT IisExpressX86 AND NOT VersionNT64"/> 
     </PackageGroup> 
    </Fragment> 
</Wix> 

그리고 :

<PackageGroupRef Id='IisExpress_8_0'/> 
+0

당신이 관리자 모드에서 MSI를 실행하려고 했습니까? 효과가있을 수 있습니다. 내 제안은 부트 스트 래퍼에서 msi가 아닌 IIS 기능을 활성화하려고 시도한 것입니다. – LeoN

+0

감사합니다 LeoN! 지금은 전제 조건 파일 (http://stackoverflow.com/questions/24439602/wix-burn-install-iis-if-not-yet-method.html 참조) 이후에 번들에서 참조되는 다른 파일로 시도하고 있습니다. 설치됨). –

답변

4

그 문제를 해결하려면, 당신은 두 번째가 필요합니다 IIS 기능을 활성화하는 ExePackages가 포함 된 WXS 파일. 그런 다음 번들에 다른 PackageGroupRef를 구현해야합니다. IIS에서 기능을 여기에

WXS :

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
    <Fragment> 
     <PackageGroup Id='ActivateIisFeatures'> 
      <ExePackage Id='IIS_WebserverRole' 
         DisplayName='Installing IIS: IIS-WebServerRole' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:IIS-WebServerRole'> 
      </ExePackage> 
      <ExePackage Id='IIS_WebServer' 
         DisplayName='Installing IIS: IIS-WebServer' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:IIS-WebServer'> 
      </ExePackage> 
      <ExePackage Id='IIS_CommonHttpFeatures' 
         DisplayName='Installing IIS: IIS-CommonHttpFeatures' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:IIS-CommonHttpFeatures'> 
      </ExePackage> 
      <ExePackage Id='IIS_StaticContent' 
         DisplayName='Installing IIS: IIS-StaticContent' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:IIS-StaticContent'> 
      </ExePackage> 
      <ExePackage Id='IIS_DefaultDocument' 
         DisplayName='Installing IIS: IIS-DefaultDocument' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:IIS-DefaultDocument'> 
      </ExePackage> 
      <ExePackage Id='IIS_DirectoryBrowsing' 
         DisplayName='Installing IIS: IIS-DirectoryBrowsing' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:IIS-DirectoryBrowsing'> 
      </ExePackage> 
      <ExePackage Id='IIS_HttpErrors' 
         DisplayName='Installing IIS: IIS-HttpErrors' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:IIS-HttpErrors'> 
      </ExePackage> 
      <ExePackage Id='IIS_HttpRedirect' 
         DisplayName='Installing IIS: IIS-HttpRedirect' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:IIS-HttpRedirect'> 
      </ExePackage> 
      <ExePackage Id='IIS_ApplicationDevelopment' 
         DisplayName='Installing IIS: IIS-ApplicationDevelopment' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:IIS-ApplicationDevelopment'> 
      </ExePackage> 

      <!--NetFx4Extended-ASPNET45--> 
      <!--Some features like IIS-NetFxExtensibility, IIS-NetFxExtensibility45, IIS-ASPNET, IIS-ManagementService and WAS-NetFxEnvironment are dependent from this one.--> 
      <ExePackage Id='NetFx4Extended_ASPNET45' 
         DisplayName='Installing IIS: NetFx4Extended-ASPNET45' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:NetFx4Extended-ASPNET45'> 
      </ExePackage> 

      <ExePackage Id='IIS_NetFxExtensibility' 
         DisplayName='Installing IIS: IIS-NetFxExtensibility' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:IIS-NetFxExtensibility'> 
      </ExePackage> 
      <ExePackage Id='IIS_NetFxExtensibility45' 
         DisplayName='Installing IIS: IIS-NetFxExtensibility 4.5' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:IIS-NetFxExtensibility45'> 
      </ExePackage> 
      <ExePackage Id='IIS_ISAPIExtensions' 
         DisplayName='Installing IIS: IIS-ISAPIExtensions' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:IIS-ISAPIExtensions'> 
      </ExePackage> 
      <ExePackage Id='IIS_ASP' 
         DisplayName='Installing IIS: IIS-ASP' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:IIS-ASP'> 
      </ExePackage> 
      <ExePackage Id='IIS_ISAPI_Filter' 
         DisplayName='Installing IIS: IIS-ISAPI-Filter' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:IIS-ISAPIFilter'> 
      </ExePackage> 
      <ExePackage Id='IIS_ASPNET' 
         DisplayName='Installing IIS: IIS-ASP.NET' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:IIS-ASPNET'> 
      </ExePackage> 
      <ExePackage Id='IIS_ASPNET45' 
         DisplayName='Installing IIS: IIS-ASP.NET45' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:IIS-ASPNET45'> 
      </ExePackage> 
      <ExePackage Id='IIS_HealthAndDiagnostics' 
         DisplayName='Installing IIS: IIS-HealthAndDiagnostics' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:IIS-HealthAndDiagnostics'> 
      </ExePackage> 
      <ExePackage Id='IIS_HttpLogging' 
         DisplayName='Installing IIS: IIS-HttpLogging' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:IIS-HttpLogging'> 
      </ExePackage> 
      <ExePackage Id='IIS_LoggingLibraries' 
         DisplayName='Installing IIS: IIS-LoggingLibraries' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:IIS-LoggingLibraries'> 
      </ExePackage> 
      <ExePackage Id='IIS_RequestMonitor' 
         DisplayName='Installing IIS: IIS-RequestMonitor' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:IIS-RequestMonitor'> 
      </ExePackage> 
      <ExePackage Id='IIS_HttpTracing' 
         DisplayName='Installing IIS: IIS-HttpTracing' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:IIS-HttpTracing'> 
      </ExePackage> 
      <ExePackage Id='IIS_CustomLogging' 
         DisplayName='Installing IIS: IIS-CustomLogging' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:IIS-CustomLogging'> 
      </ExePackage> 
      <ExePackage Id='IIS_Security' 
         DisplayName='Installing IIS: IIS-Security' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:IIS-Security'> 
      </ExePackage> 
      <ExePackage Id='IIS_WindowsAuthentication' 
         DisplayName='Installing IIS: IIS-WindowsAuthentication' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:IIS-WindowsAuthentication'> 
      </ExePackage> 
      <ExePackage Id='IIS_RequestFiltering' 
         DisplayName='Installing IIS: IIS-RequestFiltering' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:IIS-RequestFiltering'> 
      </ExePackage> 
      <ExePackage Id='IIS_IPSecurity' 
         DisplayName='Installing IIS: IIS-IPSecurity' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:IIS-IPSecurity'> 
      </ExePackage> 
      <ExePackage Id='IIS_Performance' 
         DisplayName='Installing IIS: IIS-Performance' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:IIS-Performance'> 
      </ExePackage> 
      <ExePackage Id='IIS_HttpCompressionStatic' 
         DisplayName='Installing IIS: IIS-HttpCompressionStatic' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:IIS-HttpCompressionStatic'> 
      </ExePackage> 
      <ExePackage Id='IIS_WebServerManagementTools' 
         DisplayName='Installing IIS: IIS-WebServerManagementTools' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:IIS-WebServerManagementTools'> 
      </ExePackage> 
      <ExePackage Id='IIS_ManagementConsole' 
         DisplayName='Installing IIS: IIS-ManagementConsole' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:IIS-ManagementConsole'> 
      </ExePackage> 
      <ExePackage Id='IIS_ManagementScriptingTools' 
         DisplayName='Installing IIS: IIS-ManagementScriptingTools' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:IIS-ManagementScriptingTools'> 
      </ExePackage> 
      <ExePackage Id='IIS_ManagementService' 
         DisplayName='Installing IIS: IIS-ManagementService' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:IIS-ManagementService'> 
      </ExePackage> 
      <ExePackage Id='WAS_WindowsActivationService' 
         DisplayName='Installing IIS: WAS-WindowsActivationService' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:WAS-WindowsActivationService'> 
      </ExePackage> 
      <ExePackage Id='WAS_ProcessModel' 
         DisplayName='Installing IIS: WAS-ProcessModel' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:WAS-ProcessModel'> 
      </ExePackage> 
      <ExePackage Id='WAS_NetFxEnvironment' 
         DisplayName='Installing IIS: WAS-NetFxEnvironment' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:WAS-NetFxEnvironment'> 
      </ExePackage> 
      <ExePackage Id='WAS_ConfigurationAPI' 
         DisplayName='Installing IIS: WAS-ConfigurationAPI' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:WAS-ConfigurationAPI'> 
      </ExePackage> 
      <ExePackage Id='IIS_NetFx3' 
         DisplayName='Installing IIS: NetFx3' 
         PerMachine='yes' 
         SourceFile='.\Resources\Dism.exe' 
         InstallCommand='/Online /Enable-Feature /FeatureName:NetFx3'> 
      </ExePackage> 
     </PackageGroup> 
    </Fragment> 
</Wix> 

그리고 적어도

PackageGroupRef :

<PackageGroupRef Id='ActivateIisFeatures'/> 
관련 문제