【问题标题】:Component Based AppId Name基于组件的 AppId 名称
【发布时间】:2015-02-01 14:43:37
【问题描述】:

是否可以根据选择安装的组件创建唯一的 AppId 名称。我有一个为每个状态安装状态特定组件的添加,一次只能选择一个状态来安装。如果我可以使用组件(状态首字母)作为 GUID 的前缀或后缀,那么应该可以独立卸载每个状态。我已经尝试了以下方法,但似乎没有成功。

function GetAppId(Value: string): string;
    begin  
        Result := {WizardSelectedComponents} + '{{244A887F-F3DC-4B8D-B0F8-548A90464CEF}';
    end;

【问题讨论】:

    标签: inno-setup app-id


    【解决方案1】:

    你可以做这样的事情,不管你想要一个不同的 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(但谁知道呢,也许这是故意的)。另外,不要忘记初始化Result 变量。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-17
    • 2021-07-13
    • 2017-09-27
    • 2017-01-27
    • 2018-10-16
    • 1970-01-01
    相关资源
    最近更新 更多