【问题标题】:GetStringFileInfo Not Grabbing Last CharacterGetStringFileInfo 不抓取最后一个字符
【发布时间】:2016-11-30 19:03:52
【问题描述】:

我正在使用 Inno Setup 为应用程序制作安装程序。在我的 .iss 脚本中,我使用 GetStringFileInfo(SourceDir + "\myapp\myapp.exe", PRODUCT_VERSION) 从我的 exe 的元数据中获取“产品版本”。更具体地说,我目前有:

#define MyAppVersion GetStringFileInfo(SourceDir + "\myapp\myapp.exe", PRODUCT_VERSION)
AppVersion={#MyAppVersion}

不幸的是,它似乎没有抓住产品版本的最后一个字符,我不知道为什么。例如,如果产品版本是1.1.1,那么在控制面板中我会看到1.1.

我可以通过右键单击.exe并查看详细信息来确认产品版本的值,但是当我安装应用程序后查看控制面板时,最后一个字符丢失了。

我尝试将PRODUCT_VERSION 替换为其他元数据值,例如FILE_VERSION,效果很好。这个问题似乎只出现在PRODUCT_VERSION

对为什么会发生这种情况有任何想法吗?

【问题讨论】:

  • 在我的情况下,您的代码适用于PRODUCT_VERSION。也许您想获得FILE_VERSION 而不是PRODUCT_VERSION
  • 很遗憾我们想使用PRODUCT_VERSION
  • 我已经在几个可执行文件上测试了您的代码,并且在所有情况下,函数都返回了完整的产品版本。你能用ExpandConstant('{#MyAppVersion}')InitializeSetup中调用MsgBox,然后用这个消息和另一个用文件属性(详细信息选项卡)发布屏幕截图吗?
  • 或者更好的是,提供给我们myapp.exe进行测试。

标签: inno-setup


【解决方案1】:

很抱歉在这个问题上如此冷静!我不得不暂时摆脱这个问题。原来这是我使用的库 electron-packager 的问题,升级到最新版本似乎已经解决了这个问题。虽然我在他们的问题日志中找不到与此相关的任何内容,但它肯定似乎是问题所在。感谢所有花时间在这个问题上的人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多