Inno setup Inno Setup-#define指令-如何通过字符串发出预处理器变量?

Inno setup Inno Setup-#define指令-如何通过字符串发出预处理器变量?,inno-setup,Inno Setup,如果标题不对,我很抱歉。我会解释我的要求 我需要根据Script.values中的AppName动态设置类id*\u CLSID。(此处“{{5c587137-edfd-4b32-952a-62bf5d10bg23}”) Sample.iss ;This can be modified by User who Build installer #define MyAppName "App1" ;This is my two Applications Class id's #define App1

如果标题不对,我很抱歉。我会解释我的要求

我需要根据Script.values中的
AppName
动态设置类id
*\u CLSID
。(此处
“{{5c587137-edfd-4b32-952a-62bf5d10bg23}”

Sample.iss

;This can be modified by User who Build installer
#define MyAppName "App1"

;This is my two Applications Class id's
#define App1_CLSID "{{5c587137-edfd-4b32-952a-62bf5d10bg23}}"
#define App2_CLSID "{{8c583137-4dfd-4b42-962a-6234fd10bg23}}"

;CLSID name set dynamically with help of MyAppName
#define CLSID MyAppName+"_CLSID"

[Registry]
Root: HKCR; Subkey: "Application\CLSID"; ValueType: string; ValueName: ""; ValueData:{#{#CLSID}}; Flags: uninsdeletekey
我尝试了
ValueData:{{{{{{{CLSID}}
将类Id设置为
ValueData:{{5c587137-edfd-4b32-952a-62bf5d10bg23}

但抛出一个错误
[ISPP]表达式,应为该表达式,但找到了大括号(“{”)。

这里的
{CLSID}
意味着
“App1_CLSID”
。所以我认为
{{CLSID}
{App1_CLSID}
是一样的

如何解决这个问题


提前感谢..

只需
ValueData:{#CLSID}
。感谢回复@TLama。但是{#CLSID}返回
App1\u CLSID
。它是一个字符串。但是我需要
App1\u CLSID
的值,我明白了。现在我想我明白了你的问题…你想向
CLSID
变量发出
App1\u CLSID
App2\u CLSID
,这取决于
MyAppName
值(用作前缀)。虽然我不相信这是可能的。您正在尝试从值中生成标识符。@TLama,是的。我在上找到了类似的查询。但它适合我。请立即查看