我想知道如何修复此类错误:
您必须输入带驱动器号的完整路径;例如:C:\APP 或以下形式的 UNC 路径:\server\share
每当我尝试强制 Inno Setup Compiler (5.5.5 u) 将我的东西放入其中时,就会出现这种情况H:\
代替H:\New Folder
.
我需要编译器自定义我的目标位置H:\
.
这是我的示例程序;
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={drive:F:}
AppendDefaultDirName=no
[Files]
Source: "File1.txt"; DestDir: "{code:GetExeLocation|{app}\My_Portable_App}"; \
Flags: ignoreversion
[Code]
var
UsagePage: TInputOptionWizardPage;
procedure InitializeWizard;
begin
{ Create the pages }
UsagePage := CreateInputOptionPage(wpWelcome,
'Installation Type', 'Select Installation Option',
'Where would you like to install this program',
True, False);
UsagePage.Add('Normal – PC Hard Disk Installation ');
UsagePage.Add('Portable – USB Drive Installation');
{Set Default – Normal Install}
UsagePage.SelectedValueIndex := 0;
end;
var
bIsPortable : Boolean;
function NextButtonClick(CurPageID: Integer): Boolean;
begin
// If we have clicked the next button on our custom page.
if (CurPageID = UsagePage.ID) then
begin
bIsPortable := not (UsagePage.SelectedValueIndex = 0);
end;
result := true; // need to return a value so next key has an impact
end;
function GetExeLocation (Param: String) : String;
begin
if bIsPortable then
result := Param
else
result := Param;
end;
function InstallType(sRequiredType:String):Boolean;
begin
if sRequiredType = 'Portable' then
result := bIsPortable
else
result := not bIsPortable;
end;
解释:
当我选择“正常 - PC硬盘安装”作为我的选择时,我的所有安装文件或文件夹都应转到正常路径,即C:\My Program
,但是当我选择“便携式 - USB驱动器安装”作为我的条目时,我想将所有安装文件或文件夹直接放入USB笔驱动器根目录中,即在这里H:\
,其中“H”是我的 USB 笔驱动器字母,我选择将其放入其中。但我的程序不允许我这样做,而是默认添加一个新文件夹来将我的安装文件或文件夹放在那里,那就是H:\New Folder
我根本不需要那个!当我强迫做我想做的事时,它最终给了我一个错误!
请我需要您的帮助来解决这个问题,如果这个 inno-setup 不能满足我的要求,请给我指出另一个,我将非常感激!
EDIT:
让我们重点关注第二个选择,即“('便携式 - USB驱动器安装')”,因为这是我真正的目标。
来自来源:我做了一些更改,以便使其更加清晰。
我添加了我的目标目录,即{code:GetExeLocation|{app}\My_Portable_App}
。所以我想要的是,我的所有安装文件或文件夹都安装在这个目录中,我的意思是My_Portable_App
。我的 USB 笔驱动器的路径应该是H:\My_Portable_App
。所以当一切顺利时,我只想看到这个文件夹My_Portable_App
在我的 USB 笔驱动器中,里面包含我所有的东西!
提前致谢!