0

アンインストーラーを作成しようとしています。基本的に、アンインストーラーを含むプログラムファイル内のディレクトリを削除できる必要があります。

アンインストーラーにそれ自体のコピーをtempフォルダーに作成させてから、プログラムフォルダーから実行しているアンインストーラーにtempでアンインストーラーを開き、アンインストーラーを閉じてアンインストールを続行することを考えていました。

問題は、tempフォルダー内のアンインストーラーを削除するにはどうすればよいですか...

4

2 に答える 2

0

チェックアウト: https://www.catch22.net/tuts/win32/self-deleting-executables

彼には複数の解決策がありますが、主に C++ コードを対象としています。

現在、C# で「DELETE_ON_CLOSE」メソッドを実装しようとしています。

すべての否定論者へのコメント: MSI は、すべてのケースでこの問題を解決するわけではありません。私の場合、アプリケーションはネットワーク フォルダーにインストールする必要があり、ネットワーク ユーザーなら誰でもアプリを実行できます。また、すべてのネットワーク ワークステーションからのアップグレードとアンインストールをサポートする必要があります。必ずしもアプリをインストールしたワークステーションと同じである必要はありません。これは、ローカル マシンの [プログラムの追加と削除] リストにアンインストーラーを登録できないことを意味します。インストール フォルダーにドロップされる Uninstall.exe を作成する必要があります。MSI はそれをサポートしていないので、自分で作成する必要があります。

于 2013-03-07T19:10:57.223 に答える
-1

そんなことをするべきではないという皆さんの意見には同意しますが、できることは次のとおりです。

  1. プログラムが動作している OS の一時フォルダーに実行可能ファイル (および構成ファイル) を作成します。
  2. プログラムに独立したプロセスとして開始させ、終了します。
  3. その実行可能ファイルは、実際のセットアップをコールバックします。
  4. セットアップが完了すると、一時実行可能ファイルはセットアップ ファイルを削除できます。
  5. プログラムの唯一の痕跡が一時フォルダーにあるため、最終的には自動的に消去されます。
于 2012-08-05T16:16:32.187 に答える