我使用的是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”中的users AppData文件夹中。
例如AppData\GPT\
例如,在我的delphi代码中,我在用户的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脚本的文件部分来实现这一点吗?
谢谢
发布于 2013-03-14 21:42:38
您需要使用仅映射到CSIDL_APPDATA
项ID的{userappdata}
常量作为文件的目标目录:
[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
发布于 2018-05-25 20:33:35
您需要使用:{userappdata}
如果您查看Inno设置文档:
{userappdata} = C:\Documents and Settings\username\AppData\Roaming\
{commonappdata} = C:\Documents and Settings\All Users\AppData\Roaming\
{localappdata}:本地(非漫游)应用程序数据文件夹的路径。
{userappdata} & {commonappdata}:Application Data文件夹的路径。
我使用:
[Files]
Source: MyPath\* ; Flags: recursesubdirs createallsubdirs; DestDir: {userappdata}\MySoftware\ ; Components: ConfigFiles
我的配置文件在:
C:\Users*\AppData\Roaming\MySoftware**
发布于 2014-02-03 18:33:29
如果我对Mirals注释的理解是正确的,那么使用{programdata}似乎更合适。
然而,在XP上没有{programdata},只有{commonappdata}或{userappdata},所以我必须使我的安装多样化。{programdata}是一个较晚的发明。
一个令人不安的陷阱是当桌面和userappdata被镜像到服务器(“漫游配置文件”)时,如果他们使用userappdata作为ini文件存储,这将大大减慢程序速度,至少这是我的经验。
https://stackoverflow.com/questions/15409739
复制相似问题