Inno-Setupバージョン5.5.3(a)を使用しています。
[Files]
Source: "C:\GPT\GPT.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\GPT\GPT.dat"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
「GPT.dat」ファイルを「GPT」というカスタムフォルダーのユーザーのAppDataフォルダーにインストールしたい
例えばAppData\GPT \
たとえば、私のデルファイコードでは、ユーザーのAppDataパスに「GPT」というフォルダーを作成します。これらは私がファイルを置きたいところです
var
path: array[0..MAX_PATH] of char;
SHGetFolderPath(0, CSIDL_APPDATA, 0, SHGFP_TYPE_CURRENT, @path);
userPath:= Path;
UserPath:= UserPath + '\GPT\';
if not DirectoryExists(UserPath) then
CreateDir(UserPath);
これを実現するために、Innoスクリプトの[ファイル]セクションを編集する方法を教えてもらえますか?
ありがとう
{userappdata}
定数を使用する必要があります。これは、ファイルの宛先ディレクトリとして、 CSIDL_APPDATA
アイテムIDにのみマップされます。
[Files]
Source: "C:\GPT\GPT.dat"; DestDir: "{userappdata}\GPT\"; Flags: ignoreversion createallsubdirs recursesubdirs comparetimestamp
{userappdata}&{commonappdata}アプリケーションデータフォルダーへのパス。
CSIDL_APPDATA = {userappdata} = C:\Documents and Settings\username\Application Data
CSIDL_COMMON_APPDATA = {commonappdata} = C:\Documents and Settings\All Users\Application Data
使用する必要があります:{userappdata}
Inno Setupのドキュメントを確認した場合:
{userappdata} = C:\Documents and Settings\username\AppData\Roaming\
{commonappdata} = C:\Documents and Settings\All Users\AppData\Roaming\
{localappdata}:ローカルへのパス(nonroaming) ApplicationDataフォルダー。
{userappdata}&{commonappdata}:アプリケーションデータフォルダーへのパス。
私が使う :
[Files]
Source: MyPath\* ; Flags: recursesubdirs createallsubdirs; DestDir: {userappdata}\MySoftware\ ; Components: ConfigFiles
そして私の設定ファイルはにあります:
C:\ Users *\AppData\Roaming\MySoftware **
Miralsのコメントを正しく解釈する場合は、{programdata}を使用する方が適切と思われます。
ただし、XPでは{programdata}はなく、{commonappdata}または{userappdata}しかないため、インストールを多様化する必要があります。{programdata}は後の発明です。
厄介な罠は、デスクトップとuserappdataがサーバーにミラーリングされている場合(「移動プロファイル」)であり、iniファイルストレージにuserappdataを使用すると、プログラムの速度が大幅に低下します。少なくとも私の経験ではそうです。