HEATを使用して別の場所からファイルを収集してインストーラ用のさまざまなコンポーネントを作成するインストーラがあります。ServiceInstallコンポーネントを別のコンポーネントのFileIdを参照するWiXインストーラに追加できます
コンポーネントの1つでは、Windowsサービスのファイルがインストールされます。 サービス自体をインストールする別のコンポーネントを追加したいのですが、コンポーネントにEXEファイルを置くと、ファイルが2回インストールされるというエラーが表示されます。
ServiceInstallコンポーネントを作成する方法はありますか?File要素を追加するのではなく、別のコンポーネントのファイルIDを参照しますか? 私はファイルをインストールするオプションを残したいが、サービスをインストールしない。
また、ファイルをコンポーネントから取り出して、現時点で入手しなければならない場合は、ハーベストスクリプトにあらゆる種類の複雑さが加わります。
コンポーネントセクションは、現時点では次のようになります。
<Component Id='UtilServiceInstall' Guid='{2B244D6C-BEC3-471f-A0FB-5E3B729EBE56}'>
<File Id='UtilityService' Name='UtilityService.exe' Source='UtilityService.exe' DiskId='1' KeyPath='yes' />
<ServiceInstall Id="UtilService" Type="ownProcess" Name="UtilService" DisplayName="Utility Service" Description="Utility Service" Start="demand" Account="LocalSystem" ErrorControl="normal">
<util:PermissionEx User="Everyone" ServicePauseContinue="yes" ServiceQueryStatus="yes" ServiceStart="yes" ServiceStop="yes" ServiceUserDefinedControl="yes" />
</ServiceInstall>
<ServiceControl Id="UtilService" Start="install" Stop="both" Remove="both" Name="UtilService" Wait="no" />
</Component>
サービスのインストール時に同じ問題が発生しますが、手動または自動起動のいずれかをGUIのどこかで決定したい場合。 – Cavaler