2012-02-23 17 views
0

こんにちは私は以下のコードを使ってWindows 7でIIS 7.5を有効にしています。そのうまく動作します。問題は毎回セットアップ(.MSi)を実行するときにIISがインストールされ、IIS7.5を有効にし、IIS7.5を無効にしてIISをインストールしたいかどうかを確認するための条件を設定する時間をアンインストールします。私はwix3.5を使用していますIIS 7.5 IISが無効の場合、一度だけインストールする必要があります

私を助けてください。

<CustomAction Id="InstallIISCA" PatchUninstall="no" Return="check" Property="INSTALLIISPROP" Execute="oncePerProcess" HideTarget="yes" Impersonate="yes" 
     ExeCommand=" /Online /Enable-Feature /FeatureName:IIS-WebServerRole /FeatureName:IIS-ApplicationDevelopment /FeatureName:IIS-ASPNET /FeatureName:IIS-IIS6ManagementCompatibility /FeatureName:IIS-WebServerManagementTools /FeatureName:IIS-ISAPIFilter /FeatureName:IIS-ISAPIExtensions /FeatureName:IIS-NetFxExtensibility /FeatureName:IIS-WindowsAuthentication /FeatureName:IIS-IISCertificateMappingAuthentication /FeatureName:IIS-IPSecurity /FeatureName:IIS-ISAPIExtensions /FeatureName:IIS-ISAPIFilter /FeatureName:IIS-ManagementConsole "/> 
<InstallExecuteSequence> 
    <Custom Action="InstallIISCA" Before="ConfigureIIs" /> 
</InstallExecuteSequence> 
<Property Id="INSTALLIISPROP" Value="dism.exe"></Property> 

答えて

0

カスタムアクションの実行時間を制限する複数の条件を追加できます。唯一のインストール時に、あなたのIISのチェックを実行するには、これにカスタム要素を変更:

<Custom Action="InstallIISCA" Before="ConfigureIIs"> 
    Not Installed 
    </Custom> 

あなたの説明は、いくつかの実行上の条件についての文章があります。私は、IISが有効になっている場合(つまり、インストールされているのかもしれません)、インストールを実行しないという条件も求めていると思います。これを行うには、まず

(ここでは、そのインストールかどうかを判断するためにIISのバージョンを確認する)、その条件のため
<Property Id="IIS_MAJOR_VERSION"> 
    <RegistrySearch Id="CheckIISVersion" Root="HKLM" Key="SOFTWARE\Microsoft\InetStp" Name="MajorVersion" Type="raw" /> 
    </Property> 

をプロパティを設定し、カスタムアクションの状態でプロパティを含める:

<Custom Action="InstallIISCA" Before="ConfigureIIs"> 
    Not Installed AND IIS_MAJOR_VERSION 
    </Custom> 

そして、 "ConfigureIIS"アクションのための条件を既に持っていると推測します。そのため、不必要に実行されることはありません。

関連する問題