0

WIX を使用してスタンドアロンのサイレント アンインストーラーを作成し、アンインストーラーがマシン上で適切に動作せず、存在しなくなった場合に、ダブルクリックして製品のアンインストールを実行できるサポート目的で特定の人に送信できるようにしたいと考えています (一部のユーザーは、他のツールを使用して手動で削除します)。以前にインストールしたプログラムと同じ製品 ID とパッケージ ID を使用する .wxs ファイルがあり、msiexec /x から実行すると、以前にインストールした製品が完全にアンインストールされます。ただし、それをダブルクリックすると (これらのユーザーが行うことが期待できるのはこれだけです)、アンインストールではなく、インストールが実行されます。追加してみました

<Property Id="REMOVE" Value="ALL"/>
<Property Id="ACTION" Value="UNINSTALL"/>

すべての InstallExecuteSequence アクションが「インストール済み」チェックを使用していないことを確認しますが、正常に実行された後も製品がインストールされていることを確認すると、ログ ファイルはまだ ACTION INSTALL を実行していることを示しています。

MSI (c) (A8:F8) [15:42:08:324]: プロパティの変更: ACTION プロパティを追加します。その値は「INSTALL」です。MSI (c) (A8:F8) [15:42:08:324]: アクションの実行: MSI のインストール (c) (A8:F8) [15:42:08:324]: 注: 1: 2205 2: 3 : ActionText アクション 15:42:08: インストール。アクション開始 15:42:08: インストール。

コマンド ラインを使用したり、プログラム エントリを追加/削除したりせずに、.msi ファイルを強制的にアンインストールする方法はありますか? ARPSYSTEMCOMPONENT の使用に関するエントリを見たことがありますが、十分な情報がありません。

4

1 に答える 1

0

私はそうは思わない。もちろん、exeを使用してそれを行うこともできます。また、同じ製品コードで別の msi を作成するのではなく、元の msi ファイルを使用することを強くお勧めします。

exe の場合、任意の数の chainer/bundler/downloader を使用できます。NSIS と WiX 独自の Bootstrapper があり、... WinZip もあります。

また、アンインストール コマンドを実行するパッケージ管理システムの多くは、問題がある場合に最初にインストール コマンドを実行することにも注意してください。理論的には、インストールによって配置された重要なデータが存在しない限り、アンインストーラーは適切に実行できないというものです。(例えば、WPKG)。Windows インストーラーの場合、データがユーザーから隠されているため、これは通常適用されません。しかし、彼らがそれを見つけて破損した場合は、元の msi の新しいコピーを使用して再インストールおよび/または修復することで問題が解決する可能性があります。

于 2013-11-01T23:26:49.130 に答える