安装到 USB 驱动器根目录时出现 Inno Setup 错误:“您必须输入带驱动器号的完整路径”

2024-04-03

我想知道如何修复此类错误:

您必须输入带驱动器号的完整路径;例如: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 笔驱动器中,里面包含我所有的东西!

提前致谢!


如果你想直接安装到h:\那么您应该将其明确输入到位置框中。如果您也想停止My Program使用浏览对话框后附加,那么您需要确保AppendDefaultDirName设置为否。

另请注意,对于 file2,DestDir最终将被设置为{app}/{app} if bIsPortable是 true 这很可能会扩展为无效路径。

你最好的选择是使用{code:...}函数基于创建单个“默认”路径bIsPortable然后一切都可以安装到{app}从那里。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

安装到 USB 驱动器根目录时出现 Inno Setup 错误:“您必须输入带驱动器号的完整路径” 的相关文章

随机推荐

  • 有哪些开源 C 项目值得学习来学习好的设计? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有哪些小型 C 语言开源项目对于学习良好的设计很有趣 该项目应该是 不太大 像linux内核 有据可查 也许仍在积极开发中 我刚刚开始学习
  • 错误:未指定模块(IntelliJ IDEA)

    我试图在 IntelliJ IDEA 中作为静态 Web 项目执行一个简单的程序 我是新手 正在学习使用 Node js 进行 Web 开发 我向IntelliJ IDEA官网寻求帮助 但错误还是一样 不过 我还配置了设置和项目结构 Err
  • 我怎样才能说服 IE 只显示 application/json 而不是提供下载它?

    在调试使用 AJAX 的 jQuery 应用程序时 我经常需要查看服务返回到浏览器的 json 因此 我会将 JSON 数据的 URL 放入地址栏中 这对于 ASPNET 来说很好 因为如果出现编码错误 我可以在浏览器中看到 ASPNET
  • 从 SQL 脚本调用 aspnet_regsql.exe

    如何打电话aspnet regsql exe来自 SQL 脚本 谢谢 你可以看看xp cmdshell http msdn microsoft com en us library aa260689 SQL 80 aspx xp cmdshe
  • 需要与 Microsoft.SqlServer.Management.Smo Transfer 类连接的帮助

    我试图复制所有内容 数据 索引 触发器 存储过程 在 C 中从一个数据库到另一个数据库 这是我的代码 SqlConnection connection new SqlConnection ConnectionString Server my
  • 通过减去属性来获取两个对象的差异

    我试图找出两个物体之间的差异 previousChart BWP 1 ZAR 1 3 USD 0 09324 number 1 currentChart BWP 1 ZAR 1 35 USD 0 01 number 2 期望的答案是 new
  • 如何让 Swing 应用程序感知屏幕尺寸变化?

    当我的 swing 应用程序运行时 我更改屏幕尺寸 例如从 1024x768 更改为 800x600 我可以收听任何活动以获得有关此事件的通知吗 或者 我可以每隔几秒检查一次屏幕尺寸 但 Toolkit getScreenSize 不断告诉
  • 在 Apache Spark SQL 中我们可以回滚事务吗

    我想让spark sql将数据持久化 这样的话我可以使用回滚我们已经持久化的数据吗 前任 假设我们有 3 个表 t1 t2 和 t3 t1 和 t2 表数据已成功保留 但 t3 在数据完整性级别上失败了 那么我可以回滚我已经坚持的 t1 和
  • python 中的日志精度

    以下是检查数字是否可以用幂表示的源代码 但为什么代码失败n 76 89 1 and n 76 89 我该如何解决这个错误 对于两个 n 给出x log n 2 log i 2 89 0 from math import log sqrt f
  • Amazon ElasticBeanStalk 工作线程层无法连接到 SQS

    目前 我在允许我的工作人员连接到 SQS 时遇到问题 这是日志 2014 07 21T21 37 26Z error AWS SQS Errors AccessDenied Access to the resource https sqs
  • 从 java.util.date 转换为 JodaTime

    我想转换一个java util Date to JodaTime以便在日期之间进行减法 有没有一个好的简洁方法来转换Date to JodaTime java util Date date DateTime dateTime new Dat
  • 如何在网页中动态显示 ping 输出?

    作为诊断页面的一部分 我希望用户能够运行 ping 即一个普通的 shell 命令 将 ICMP ECHO REQUST 发送到某个 IP 并在浏览器的 div 中动态显示结果 后端是 Ruby Rails 我已经在服务器端运行该命令并读取
  • 如何使用 FCM 向特定用户发送通知?

    我为 FCM 准备了接收器 可以向所有设备发送通知 gcm http googleapis com gcm send使用此链接可以发送给注册的目标用户并发布到目标设备 如下所示 json notification title sample
  • R 错误:某些组对于“qda”来说太小

    我用的是MASS qda 找到我的数据的分类器 它总是报告 某些群体对于 qda 来说太小了 是由于我用于模型的测试数据的大小吗 我将测试样本大小从 30 增加到 100 它报告了相同的错误 求助啊啊啊啊啊 set seed 1345 Al
  • Spring Integration TCP - 在发送数据之前启动消息握手

    我正在使用 MessagingGateway 将数据发送到服务器 我为出站网关配置了 AbstractClientConnectionFactory 和 ServiceActivator 为了将数据发送到我的服务器 我需要在启动连接时发送握
  • delete *p 是删除 [] p 的替代方法吗?

    以下代码来自微软文档 https learn microsoft com en us cpp cpp new operator cpp view vs 2019 int p new int 7 delete p 我觉得delete p应该在
  • QUnit 与 Jasmine? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 这两个测试框架的主要区别是什么 我是测试驱动开发的新手 从头开始 QUnit 非常容易上手 因为您只需要包含两个文件和一点标记 然后就可以开始编
  • 链增量运算符

    为什么不能连锁经营 int test 5 test OR int test 5 test 此代码给出编译时错误 递增或递减运算符的操作数必须是变量 属性或索引器 我完全理解这一点 如果允许的话 将是一个完整的代码味道 几乎没有现实世界的用途
  • 当 AWS 存在时,为什么人们还使用 Heroku? Heroku 与 AWS 有何不同? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我是一名初级 RoR 程序员 计划使用 Heroku 部署我的应用程序 我的其他顾问朋友说 Heroku 真的很简单 很好用 唯一的问题是我仍然
  • 安装到 USB 驱动器根目录时出现 Inno Setup 错误:“您必须输入带驱动器号的完整路径”

    我想知道如何修复此类错误 您必须输入带驱动器号的完整路径 例如 C APP 或以下形式的 UNC 路径 server share 每当我尝试强制 Inno Setup Compiler 5 5 5 u 将我的东西放入其中时 就会出现这种情况