2

次のコードを使用して、wcf サービスもインストールする msi-setup 内に Windows 機能 (IIS など) をインストールしています。

<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-WebServerManagementTools /featurename:IIS-ManagementConsole" ></CustomAction>
<InstallExecuteSequence>
  <Custom Action="InstallIISCA" Before="InstallFinalize">NOT Installed</Custom>
</InstallExecuteSequence>

サービスのインストール中にIIが既にインストールされている必要があることを除いて、正常に動作しています(UIでインストールされたWebサイドのリストを取得するためなど)。2 つ目のセットアップ プロジェクトを作成してそこにコードを配置しましたが、ダミー ファイルを含めた場合にのみコマンドが実行されます。

<Fragment>
    <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
         <Component Id="ProductComponent" Guid="ff876420-51ed-4bfc-bfd0-167a6333bf5e">
     <File Id="Product.wxs" Source="Product.wxs" KeyPath="yes" Checksum="yes"/>
         </Component>
    </ComponentGroup>
</Fragment>

また、「インストール済みアプリケーション」リストに 2 番目の項目を追加したくありません。これの「通常の」位置はどこですか?Bootstrapper からコマンドを直接実行できますか? または、UI をロードして条件をチェックする前にカスタム アクションを実行できますか?

<Chain >
    <PackageGroupRef Id="NetFx45Web"/>
    <MsiPackage SourceFile="ServiceSetup.msi" EnableFeatureSelection="yes" DisplayInternalUI="yes" ForcePerMachine="yes"/>
</Chain>
4

1 に答える 1