我想知道如何解决这种错误:
您必须输入带驱动器号的完整路径;例如:C:\ APP或UNC路径,格式为:\ server \ share
只要我试图强制Inno安装编译器(5.5.5 u)将我的内容放入{{say say 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
的正常路径,但是当我选择&#时34;便携式 - USB驱动器安装"作为我的条目,我想将我的所有安装文件或文件夹直接放入USB Pen驱动器Root,即H:\
,其中" H"是我的USB Pen Drive信件,我选择将其放入。但我的程序不允许我这样做,而是默认添加一个新文件夹,将我的安装文件或文件夹放在那里,即{{ 1}}我根本不需要它!当我强迫我做我想做的事时,它结束了给我一个错误!
我需要你的帮助来解决这个问题,如果这个创新设置无法做到我想要的,请指出另一个,我会感激的!
编辑:
NB: 让我们关注第二个选择"('便携式 - USB驱动器安装')"因为这是我真正的目标!
来自消息来源:我做了一些改动,以便更清楚。
我添加了目标目录,即" {code:GetExeLocation | {app} \ My_Portable_App}"。所以我想要的是,我在这个目录中安装的所有安装文件或文件夹,我的意思是" My_Portable_App"。我的USB笔式驱动器的路径应该是[H:\ My_Portable_App]。所以当这很好的时候,我想只看到这个文件夹" My_Portable_App"在我的USB笔式驱动器中,它将包含我所有的东西!!!
提前致谢!
我需要你的帮助,请修复这个...... !!!
答案 0 :(得分:1)
如果要直接安装到h:\
,则应明确将其输入到位置框中。如果您还想在使用浏览对话框后停止追加My Program
,则需要确保AppendDefaultDirName
设置为否。
另请注意,对于file2,如果DestDir
为真,{app}/{app}
将最终设置为bIsPortable
,这很可能会扩展为无效路径。
您最好的选择是使用{code:...}
功能创建单个"默认"基于bIsPortable
的路径,然后一切都可以从那里安装到{app}
。
答案 1 :(得分:0)
我也为验证而苦恼,因为在TInputDirWizardPage中root无效。 事实证明,有一个简单的Inno设置选项可以更改此行为:
AllowRootDirectory =是
将允许用户指定驱动器根目录而不会出现错误。 也可以看到
AllowUNCPath =是/否
和
Inp帮助文件中的AllowNetworkDrive =是/否
适用于“选择目标位置页面”的其他验证修饰符。
答案 2 :(得分:0)
此安装文件必须位于光盘c:上。 就是这样。