如果用户第一次安装我的应用程序,但如果有一个以前的版本取消注册,然后注册新版本(假设界面不同),我如何构建我的 Inno Setup 脚本以自动注册一个 dll?
我目前在我的文件部分使用 regserver 和 ignoreversion 标志,如下所示:
[Setup]
...
[Languages]
...
[Files]
Source: "C:\example.dll"; DestDir: "{app}"; Flags: ignoreversion regserver
在我的谷歌搜索中,我找到了UnregisterServer,但我不知道如何将它添加到我的脚本中。我很乐意开始修补看看它是如何工作的,但我不想做任何会弄乱我的注册表的事情。
这里有一个类似的帖子,但它没有说明这是如何实现的。
编辑
在 Pascal 中进行修改后,我能够将以下内容添加到 [Code] 部分并且它起作用了。有谁知道如何使用 {app} 常量在下面的代码中动态定义文件名?
[Code]
const
fileName = 'C:\Program Files\TFolderName\tigercontroller.dll';
var
serverExists: Boolean;
function InitializeSetup(): Boolean;
begin
serverExists := UnregisterServer(False, fileName, False);
if serverExists then begin
Result:= True;
MsgBox('This will update with the most recent version', mbInformation, mb_Ok);
end else
Result := True;
end;