4

WiX拡張機能WixUtilExtensionを使用してWindowsサービスのユーザーを作成するプロジェクトがあります。(.mspを使用して)インストールにパッチを適用すると、カスタムアクションRemoveUserとCreateUserが実行されます。

これらのWiX拡張機能で作成されたカスタムアクションをパッチ中に実行したくありません。

これを防ぐために、 MSIのInstallExecuteSequenceテーブルのカスタムアクション(ConfigureUsers)に条件を直接追加できますが、WiXでこれを処理する方法が見つかりません。

WiXを使用して、パッチ中にRemoveUserとCreateUserが実行されないようにするにはどうすればよいですか?

<util:Group Id="LocalAdministrators" Name="Administrators"/>
<DirectoryRef Id="INSTALLLOCATION" DiskId="1">
    <Component Id="CreateServiceAccountUser" Guid="{614550A7-C766-4B5D-9BF9-233D07EB3B69}">

        <util:User Id="ServiceAccountUser"
                   CanNotChangePassword="yes"
                   CreateUser="yes"
                   Disabled="no"
                   FailIfExists="no"
                   LogonAsService="yes"
                   Name="TestUser"
                   Password="testuserpw"
                   PasswordExpired="no"
                   PasswordNeverExpires="yes"
                   RemoveOnUninstall="yes"
                   UpdateIfExists="yes">
            <util:GroupRef Id="LocalAdministrators"/>
        </util:User>

        <RegistryKey Root="HKMU" Key="Software\AMT\WebBrix">
            <RegistryValue Name="CreateServiceAccountUser"
                           Value="Common"
                           Type="string"
                           KeyPath="yes" />
        </RegistryKey>

    </Component>
</DirectoryRef>
4

1 に答える 1

3

WiXでそれを行うことができます:

<InstallExecuteSequence>
    <Custom Action='ConfigureUsers' 
            After='InstallFinalize'>NOT Installed</Custom>
</InstallExecuteSequence>

その他の条件はこちら

  1. インストール中にのみ実行されるアクション 条件: インストールされておらず、パッチも適用されていません
  2. アクションは、MSI 条件の削除中にのみ実行されます: REMOVE
  3. インストールおよび修復中にアクションが実行されます 状態: NOT REMOVE
  4. インストールおよび削除中にアクションが実行されます 条件: 条件が存在してはなりません
  5. アクションは、MSI によってインストールされた EXE を呼び出します。条件: インストールされておらず、パッチも適用されていません。
  6. 初期インストール時にのみ実行: インストールされていません
  7. 初期インストール時または修復が選択されたときに実行します。インストールされていないか、MaintenanceMode="Modify"
  8. コマンドラインや追加・削除メニューからのアンインストール時に実行します。REMOVE~="すべて" または MaintenanceMode="削除"
于 2010-06-19T07:52:43.210 に答える