アンインストーラーを作成しようとしています。基本的に、アンインストーラーを含むプログラムファイル内のディレクトリを削除できる必要があります。
アンインストーラーにそれ自体のコピーをtempフォルダーに作成させてから、プログラムフォルダーから実行しているアンインストーラーにtempでアンインストーラーを開き、アンインストーラーを閉じてアンインストールを続行することを考えていました。
問題は、tempフォルダー内のアンインストーラーを削除するにはどうすればよいですか...
アンインストーラーを作成しようとしています。基本的に、アンインストーラーを含むプログラムファイル内のディレクトリを削除できる必要があります。
アンインストーラーにそれ自体のコピーをtempフォルダーに作成させてから、プログラムフォルダーから実行しているアンインストーラーにtempでアンインストーラーを開き、アンインストーラーを閉じてアンインストールを続行することを考えていました。
問題は、tempフォルダー内のアンインストーラーを削除するにはどうすればよいですか...
チェックアウト: https://www.catch22.net/tuts/win32/self-deleting-executables
彼には複数の解決策がありますが、主に C++ コードを対象としています。
現在、C# で「DELETE_ON_CLOSE」メソッドを実装しようとしています。
すべての否定論者へのコメント: MSI は、すべてのケースでこの問題を解決するわけではありません。私の場合、アプリケーションはネットワーク フォルダーにインストールする必要があり、ネットワーク ユーザーなら誰でもアプリを実行できます。また、すべてのネットワーク ワークステーションからのアップグレードとアンインストールをサポートする必要があります。必ずしもアプリをインストールしたワークステーションと同じである必要はありません。これは、ローカル マシンの [プログラムの追加と削除] リストにアンインストーラーを登録できないことを意味します。インストール フォルダーにドロップされる Uninstall.exe を作成する必要があります。MSI はそれをサポートしていないので、自分で作成する必要があります。
そんなことをするべきではないという皆さんの意見には同意しますが、できることは次のとおりです。