さまざまな必要な Windows 機能のインストール状態をテストするために、組み込みの powershell スクリプトを実行する CustomAction を実行するインストーラーがあります。これは正しく機能しますが、完了するのが非常に遅くなります。
そのような機能をテストする別の方法はありますか? 各機能とサブ機能のレジストリ キーの行に沿って何かがあると思いますが、この件に関するドキュメントは見つかりませんでした。
さまざまな必要な Windows 機能のインストール状態をテストするために、組み込みの powershell スクリプトを実行する CustomAction を実行するインストーラーがあります。これは正しく機能しますが、完了するのが非常に遅くなります。
そのような機能をテストする別の方法はありますか? 各機能とサブ機能のレジストリ キーの行に沿って何かがあると思いますが、この件に関するドキュメントは見つかりませんでした。
インストール プロジェクトの 1 つで、必要な Windows 機能を有効にするためにdism.exeを使用しました。
たとえば、IIS 8 で ASP.NET を有効にするには、次のカスタム アクションを使用します。
<!-- 32-bit edition of Windows knows where to find dism.exe -->
<Property Id="DISMEXEPATH" Value="dism.exe" />
<!-- 64-bit edition of Windows requires this workaround to get proper dism.exe version -->
<SetProperty Id="DISMEXEPATH" Value="[WindowsFolder]Sysnative\dism.exe" After="AppSearch">VersionNT64</SetProperty>
<!-- And the CA to do the job (with the help of [quiet execution CA][2]) -->
<CustomAction Id="SetForEnableAspNetIIS8" Property="EnableAspNetIIS8" Value=""[DISMEXEPATH]" /norestart /quiet /online /enable-feature /featurename:IIS-ApplicationDevelopment /featurename:IIS-ASPNET45 /featurename:IIS-NetFxExtensibility45 /featurename:NetFx4Extended-ASPNET45 /featurename:IIS-ISAPIExtensions /featurename:IIS-ISAPIFilter" />
<CustomAction Id="EnableAspNetIIS8" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Return="check"/>
これは良い習慣ではないようですが、そのプロジェクトではうまくいきました。