-2

アンインストールの実行時にインストール済みファイルのみを削除するライブラリまたはマクロはどれをお勧めしますか?

この種の質問が多く寄せられていることは承知していますが、最新で最も使いやすいマクロ/ライブラリに関するアドバイスを探しています。以前と同様に、コマンド ライン引数の解析などのためにNSIS Web サイトに投稿された古いマクロを使用し、コードと実装に問題がありました。

私の理解では、これまでのところ2つあります(もっとありますか?):

Advanced_Uninstall_Log
Uninstall_only_installed_files

どのライブラリまたは単一のマクロを使用し、推奨しますか?

フォルダー X を指定するだけでファイルをインストールでき (そのすべてのサブファイルがインストールされます)、アンインストーラーはフォルダー X 内のすべてのサブファイルを削除しますが、ユーザーが作成したものは残します。

例:

Section "install"
   File \r "FolderX" 

   # note how I dont do this..
   File \r "FolderX\filea.txt" 
   File \r "FolderX\fileb.txt"
SectionEnd

Section "un.uninstall"
   ${RemoveDir} "FolderX" 

   # The above hypothetical function will hopefully only delete the files in FolderX that I installed.
   Delete \r "FolderX\filea.txt" 
   Delete \r "FolderX\fileb.txt"
SectionEnd
4

1 に答える 1

0

上記の両方を試しましたが、どちらもうまくいきませんでした。Advanced_Uninstall_Log はうまく機能しましたが、データ量が多かったため、インストール中に大幅な遅延が発生しました。

uninstall_only_installed_files は、ファイル /r を使用して再帰的にインストールするためのものではありません。

最終的に、InstallFiles と UninstallFiles という 2 つのマクロを作成する Python スクリプトを作成しました。MakeNSIS で NSIS インストーラーをビルドする前に、バッチ ファイルを使用してこのスクリプトを呼び出し、install_files.nsh を生成します。

誰かが彼の同様のスクリプトをここに投稿しました。http://nsis.sourceforge.net/Talk:Uninstall_only_installed_files

于 2013-06-18T22:19:02.477 に答える