如何让用户使用Inno Setup浏览到要复制的文件

时间:2013-01-31 17:25:47

标签: installer inno-setup

我需要用户浏览到某个文件,选择它,然后将此文件从选定的源复制到app文件夹。

关注这篇文章 How to show/use the user selected app path {app} in InputDirPage in Inno Setup? 和Inno Setup文档,我来到这段代码:

[Files]
Source: {code:GetDBPath}; DestDir: "{app}"; Flags: confirmoverwrite uninsneveruninstall;

[Code]
var
  SelectDBPage: TInputDirWizardPage;  
  DBPath: String;

procedure InitializeWizard;
begin
  SelectDBPage := CreateInputDirPage(wpSelectDir, 'Select file', 'Select file',    'Select file', False, '');
  SelectDBPage.Add('');
  SelectDBPage.Values[0] := ExpandConstant('{src}\DB.FDB');
  DBPath := SelectDBPage.Values[0];
end;

function GetDBPath():String;
begin
    Result := DBPath;
end;

我的问题是检索文件路径。在'Source:{code:GetDBPath}'指令中,我得到一个'未知文件名前缀{code:'错误。 如何在[文件]部分中引用所选文件路径?

谢谢

1 个答案:

答案 0 :(得分:2)

您需要将external标记添加到[Files]条目。这意味着将在运行时评估源,并且CAN包括{code:...}常量。

您在GetDBPath()功能中也没有获得正确的值。您返回创建页面后未更新的DBPath值,而不是从SelectDBPage.Values[0]获取最新值。