我打电话ISCC /DENABLE_SIGNING=1 MyFile.iss
,在MyFile.iss我有:
#if ENABLE_SIGNING == 1
SignedUninstaller=yes
SignTool=mysigntool
#endif
Run Code Online (Sandbox Code Playgroud)
ISPP失败并且错误地在以下行中出现错误#if ENABLE_SIGNING == 1
:
[ISPP]运算符不适用于此操作数类型.
但是,如果我在MyFile.iss中定义了ENABLE_SIGNING,它就可以了.此代码通过时没有错误:
#define ENABLE_SIGNING 1
#if ENABLE_SIGNING == 1
SignedUninstaller=yes
SignTool=mysigntool
#endif
Run Code Online (Sandbox Code Playgroud)
编辑
另外,还有另一个问题,当我使用时/DENABLE_SIGNING=0
,测试#if ENABLE_SIGNING
成功,而如果我使用#define ENABLE_SIGNING 0
,则检查失败(意味着评估为假),应该如此.
从我现在运行的一些测试来看,命令行解释预处理器似乎将定义默认值作为字符串.因此,当您以这种方式修改条件时,它将正常工作:
; just for case when you wouldn't run ISCC from command line
#ifndef ENABLE_SIGNING
#define ENABLE_SIGNING "1"
#endif
[Setup]
AppName=My Program 1
AppVersion=1.5
DefaultDirName={pf}\My Program
#if ENABLE_SIGNING == "1"
SignedUninstaller=yes
SignTool=mysigntool
#endif
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1051 次 |
最近记录: |