2

そのため、この問題を解決するために Windows インストーラーがどのように機能するかを理解しようと努めてきました。現状では、プログラムの追加と削除に行き、ソフトウェアを削除します。これは、ソフトウェアを呼び出して削除する
と思います。msiexec.exe /x {product id}問題は、実際に削除されるのはデスクトップ アイコンといくつかのファイルだけであり、1 つのレジストリ キーだと思います。

msiexec.exe /xそれ以来、それが呼び出されたときに正確に何が行われるかを理解しようとしてきました。InstallExecuteSequenceファイル内のテーブルを通過し、.msiすべてのアクションを実行すると思いますか? 私は本当に100%確信が持てません。.msiファイルの中を見ると、 RemoveFileandRemoveRegistryテーブルと DeleteService アクションがあることがわかりますが、すべてがどのように組み合わされているのか、ソフトウェアのインストール時にすべてが削除されない理由がわかりません。

ここでの最終目標は、サービスをアンインストールし、レジストリ キーを削除し、プログラム ファイルで作成されたルート フォルダーを削除することです。誰でも洞察を提供できますか?

4

2 に答える 2

0

ファイルの削除などは、新しいバージョンにアップグレードするためのものです。つまり、古いバージョンにはファイル old.dat があり、新しいバージョンには new.dat があるため、msi に old.dat を削除して整理するように指示します。

この種の動作が発生した場合、レジストリ/インストーラーデータベースが台無しになっているのではないかとすぐに疑うので、クリーンなマシンで何が起こるかをテストしましたか?

于 2012-05-30T22:05:35.463 に答える
0

最終目標はサービス/ソフトウェアをアンインストールすることなので、次のコマンドを使用できます (「cmd」シェルから実行します)。

    wmic product where name="product name" call uninstall

wmic コマンドのその他の例/ドキュメントを参照するには、ここに移動してください。

于 2012-05-30T22:06:31.967 に答える