0

古いバージョンを探すインストーラーがあり、アンインストール プロセスの一部としてフォルダーにバックアップします。

バックアップのために、私は試しRenameました(時々失敗します)、CreateDirectory次にCopyFilesそれらを削除し(時間がかかり、多くのファイルとディレクトリ)、すべての機能がその非バージョンに置き換えられるMove Folder.MoveFolder_Locate_moveFileを使用することを好みました( ->などun.MoveFolder_Locate_moveFile) .

StrCpy $switch_overwrite 1
!insertmacro un.MoveFolder "$INSTDIR" "$BACKUP_FOLDER" "*.*"

正常に動作していました...

それでも、私はアンインストーラーを次のように起動していました:

ExecWait '$R0'

に変更した途端に

ExecWait '$R0 _?=$INSTDIR'

MoveFile でエラーが発生します。

4

1 に答える 1

1

_?= なしでアンインストーラーを実行すると、アンインストーラーは自分自身を $temp にコピーし、そこから (待機せずに) 新しいインスタンスを実行します。これのハイブリッドを試す必要があります。自分でアンインストーラーを $temp にコピーし、_?=$instdir で実行します。これにより、$instdir をロックせずにプロセスを待つことができます...

于 2012-08-13T15:53:57.587 に答える