1

Win 8 の要件を満たすには、データ ファイル ( data.mpd) を以前のインストールのインストール ディレクトリ (通常はc:\ProgramFilesユーザーが別の場所に変更している可能性があります) から新しいディレクトリにコピーする必要があります。c:\User\....

どうやって:

  • 以前のインストールのパスを取得する
  • ファイル data.mpd が存在するかどうかを確認します
  • そのファイルを C:\Users... にコピーします。
4

2 に答える 2

0

WizardForm.PrevAppDir特定のインストーラーが以前にアプリケーションをインストールしたフォルダー パスを保持するプロパティを使用できAppIdます (まだインストールされていない場合は空です)。このプロパティは、ウィザード フォームが初期化された後に入力されるので、InitializeWizardイベントの後に読み取ってください。

あなたのタスクでは、インストール前のステップでこの操作を行うので、CurStepChangedイベント メソッドについては、次のように記述します。

[Code]
procedure CurStepChanged(CurStep: TSetupStep);
var
  DataFilePath: string;
begin
  // check if the current step is pre-installation step and if the
  // application had been previously installed; if so, then...
  if (CurStep = ssInstall) and (WizardForm.PrevAppDir <> '') then
  begin
    // build and store the path to the Data.mpd file from the prev.
    // installation path
    DataFilePath := AddBackslash(WizardForm.PrevAppDir) + 'Data.mpd';
    // check, if that Data.mpd file exists; if so, then...
    if FileExists(DataFilePath) then
      // copy it to the target directory; if it fails, show error message
      if not FileCopy(DataFilePath, <your new directory here>, False) then
        MsgBox('Copying of the Data.mpd failed!', mbError, MB_OK);
  end;
end;
于 2013-07-14T09:45:03.023 に答える
0

を使用しDisableDirPage=autoます。これにより、アップグレード時にインストール パスを変更できなくなります。

次に、アプリケーション (インストーラーではなく) が独自のフォルダーでこのファイルを検出し、それをユーザーごとのフォルダーにコピーします。これにより、複数のユーザーがアプリケーションを実行する場合に最も堅牢な動作が得られます (これは、ユーザーごとのデータを持つことの要点です)。

于 2013-07-15T12:09:43.083 に答える