【问题标题】:How to eliminate spaces for installation while writing Inno setup file?编写 Inno 安装文件时如何消除安装空间?
【发布时间】:2014-02-03 10:20:40
【问题描述】:

我正在为我遇到问题的项目创建安装程序。

如果项目安装在包含空格的目录中,则无法按预期运行,例如:“C:\Program Files (x86)”,如果安装在不包含空格的目录中,则运行正常例如:“C:\Python27”。

因此,据我了解,项目方面没有任何问题,而 .iss 代码则完全没有问题。

那么谁能告诉我如何解决这个问题。由于大多数安装程序是使用 Inno 安装程序创建的,并且它们安装在程序文件中,因此有办法解决这个问题,我不知道。

问候,

婆罗洲

【问题讨论】:

  • 请详细说明-您要解决的问题究竟是什么?您能否发布一个示例或您收到的错误消息?问题是在编译过程中还是在安装过程中出现,还是在安装完成并尝试运行应用程序后出现?
  • 此外,问题出在您的应用程序中。这不是 Inno Setup 的规定,您的应用程序不能从带有空格的目录运行。
  • @RobenN 安装没有问题。它运行良好,没有任何错误。当我通过单击一个按钮来运行我的应用程序时,该按钮没有响应 - 它的行为就像没有向该按钮写入任何代码一样。
  • @TLama 我不想避免空格,我希望我的应用程序在所有情况下都能正常工作。我什至交叉检查了我的应用程序,即我将我的应用程序安装在路径“D:\Program Files (x86)”中,它工作正常,但如果相同的应用程序安装在路径“C:\Program Files (x86)”中不工作。
  • 您应该只写入用于此目的的文件夹。在这种情况下,我觉得它可能是您的应用程序可写的应用程序数据文件夹。

标签: inno-setup


【解决方案1】:

问题不在于空格。我的应用程序创建一个日志文件来记录数据。由于普通用户无权在程序文件夹中创建文件,因此应用程序无法正常工作...应用程序应以管理员身份运行才能工作。

【讨论】:

  • 没有。解决方案不应该是您运行提升的应用程序。您永远不应该将日志写入应用程序文件夹。该文件夹用于应用程序,而不是用于其数据。您应该在应用程序数据目录中写入日志。
【解决方案2】:

使用mklink 创建符号链接。 在[RUN] 部分创建类似这样的内容:

Filename: {cmd}; Parameters: "/c MKLINK /D {sd}\ProgramPathNoSpaces ""{pf}\Program Path With Spaces"; Flags: RunHidden;

使用定义了“start in”属性的快捷方式在ProgramPathNoSpaces 中运行您的应用程序。

希望这对您有所帮助,但每个人都是对的。问题出在应用程序中,这只是一种解决方法。

【讨论】:

  • 而“年度最 hackiest 方法”的奖项颁给了... 简而言之,不要这样做,这是解决应用程序中的错误并污染用户系统的 hack .另请注意,{pf} 可能与 {sd} 不在同一驱动器上,从而导致硬链接失败。
  • 我不评论您是否应该修复应用程序。有时您不是所有者,但我避免在这里和任何地方与您讨论这个问题。但你错了。硬链接工作。 {pf} 不需要与 {sd} 位于同一驱动器中,如果您是真诚的,您就会知道这是真的。
  • NTFS 硬链接要求文件夹位于同一分区上。我坚持我所说的。
  • mklink /d 默认为符号链接,我已编辑您的问题以适合。
猜你喜欢
  • 1970-01-01
  • 2017-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-27
  • 2011-07-04
  • 1970-01-01
相关资源
最近更新 更多