Inno setup 基于组件的AppId名称
是否可以根据选择要安装的组件创建唯一的AppId名称。我有一个Add,为每个状态安装特定于状态的组件,一次只能选择一个状态进行安装。如果我可以使用组件(状态首字母)作为GUID的前缀或后缀,那么应该可以独立卸载每个状态。我试过下面的方法,但似乎没有奏效Inno setup 基于组件的AppId名称,inno-setup,app-id,Inno Setup,App Id,是否可以根据选择要安装的组件创建唯一的AppId名称。我有一个Add,为每个状态安装特定于状态的组件,一次只能选择一个状态进行安装。如果我可以使用组件(状态首字母)作为GUID的前缀或后缀,那么应该可以独立卸载每个状态。我试过下面的方法,但似乎没有奏效 function GetAppId(Value: string): string; begin Result := {WizardSelectedComponents} + '{{244A887F-F3DC-4B8D-
function GetAppId(Value: string): string;
begin
Result := {WizardSelectedComponents} + '{{244A887F-F3DC-4B8D-B0F8-548A90464CEF}';
end;
无论有多少组件需要不同的ID,您都可以这样做:
function GetAppId(Value: string): string;
var
strResult: String;
begin
if IsComponentSelected('ComponentName1') then
begin
strResult := '{244A887F-F3DC-4B8D-B0F8-548A90464CEF}';
end
else if IsComponentSelected('ComponentName2') then
begin
strResult := '{A0A115ED-45E5-4DC7-A73A-3E8046CA4478}';
end;
end;
在运行时分配指令值时,不需要转义常量(编译器需要转义)。这段代码实际上会生成一个带有双括号的GUID(但谁知道呢,也许这是有意的)。另外,不要忘记初始化
结果
变量。