7

正常にインストールされている WiX スクリプトを使用して動的にビルドする MSI があります。ただし、UninstallString には一貫して /X であると予想される msiexec.exe への /I (「スラッシュアイ」) パラメータがあります。ここでUninstallString について読みましたが、このレジストリ エントリは Windows インストーラによって設定されると書かれています。WiX または発行するインストール コマンドのいずれかを介して、Windows インストーラーに何を渡しますか?

4

3 に答える 3

8

私は故障し、これについて MS サポートと話しました。答えは、MSI の ARPNOMODIFY プロパティを 1 に設定して、/X パラメータを使用する UninstallString を生成することです。

/I パラメーターは、appwiz.cpl の一覧で "変更" および "修復" オプションを利用できることを意味します。これが、この問題に直面している他の誰かに役立つことを願っています。

以下の MSDN の記事では、ARP プロパティについて詳しく説明しています。

http://msdn.microsoft.com/en-us/library/windows/desktop/aa367590(v=vs.85).aspx

http://msdn.microsoft.com/en-us/library/windows/desktop/aa367591(v=vs.85).aspx

http://msdn.microsoft.com/en-us/library/windows/desktop/aa367592(v=vs.85).aspx

于 2012-05-02T15:06:59.330 に答える
2

UninstallString を設定するには、WiX インストーラーで ARPAltRegistryEntries コンポーネントを作成する必要があります。パラメータを /X ではなく /I に設定すると、独自のアンインストール UI を使用できます。次に例を示します。

<DirectoryRef Id="TARGETDIR">
    <!-- Create alternative ARP entry that lets us launch uninstall with
        full UI.  Setting ARPSYSTEMCOMPONENT above hides WI generated key
                that uses the product GUID.-->
    <Component Id="ARPAltRegistryEntries" Guid="">
        <RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Your Product"                                      Action="createAndRemoveOnUninstall">                   
            <RegistryValue Type="string" Name="UninstallString" Value="MsiExec.exe /i[ProductCode] REMOVE=ALL"/>
        </RegistryKey>
    </Component>
</DirectoryRef>
于 2012-04-25T22:53:06.107 に答える