首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Inno安装脚本中使用Inno安装程序编译器命令行上指定的路径/值

在Inno安装脚本中使用Inno安装程序编译器命令行上指定的路径/值
EN

Stack Overflow用户
提问于 2019-01-25 15:22:50
回答 2查看 1.2K关注 0票数 2

我希望将一个路径(通过命令行arg /D传递给脚本编译器)传递给我的可执行文件,让我的脚本使用GetFileVersion确定应用程序版本号,但是语法不正确。如何将参数传递给GetFileVersion?错误是:输入文件中的非法字符:'#‘(0x23)

代码语言:javascript
复制
#define srcpath SOURCEPATH
#define ApplicationVersion GetFileVersion(#srcpath)//error here!!!!!!

[Setup]
AppVersion={#ApplicationVersion}

[Files]
Source: "MyDllTesting.dll"; Flags: dontcopy
Source: "{srcpath}MyApplication1.exe"; DestDir: "{app}\MyApplication1"
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-25 16:32:51

首先,SOURCEPATH是一个Inno安装程序预定义变量,所以您需要为命令行“变量”使用另一个名称。我将使用SOURCE_PATH

第二,正确的语法是:

代码语言:javascript
复制
#define ApplicationVersion GetFileVersion(SOURCE_PATH)

(即没有散列)

为什么没有散列,在我的回答中

为什么预处理程序在#include指令中的行为不同,然后在[Files]节中的安装脚本中

虽然原因基本上是相同的,但是为什么在SOURCEPATH之前不使用散列呢?

代码语言:javascript
复制
#define srcpath SOURCEPATH

相反,您忽略了[Files]节条目中的哈希。正确的语法是:

代码语言:javascript
复制
[Files]
Source: "{#srcpath}MyApplication1.exe"; DestDir: "{app}\MyApplication1"

不需要定义srcpath变量。SOURCE_PATH也是可变的。因此,您可以在任何表达式中直接使用它:

代码语言:javascript
复制
#define ApplicationVersion GetFileVersion(SOURCE_PATH)

[Files]
Source: "{#SOURCE_PATH}MyApplication1.exe"; DestDir: "{app}\MyApplication1"
票数 2
EN

Stack Overflow用户

发布于 2019-08-30 19:05:48

安装前处理器:命令行编译器的执行上的文档中,我可以使用/D选项定义一个名为"MyCustomParam"的命令行参数,如下所示:

代码语言:javascript
复制
.\ISCC.exe /DMyCustomParam=MyParamValue "MySetupScript.iss"

然后,我编写了我的安装脚本,如下所示,它获得了为命令行上的参数定义的值:

代码语言:javascript
复制
[Setup]
AppName={#MyCustomParam}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54368198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档