Inno Setup 从 {tmp} 执行的安装后程序找不到 dll/程序集

问题描述 投票:0回答:1

我正在尝试在安装完成后运行程序。 我是这样定义的:

[Files]

; Post install
Source: "UpdateSettingsFile\*.exe"; DestDir: {tmp}
Source: "UpdateSettingsFile\*.dll"; DestDir: {tmp}
Source: "UpdateSettingsFile\UpdateSettingsFile.runtimeconfig.json"; DestDir: {tmp}
Source: "UpdateSettingsFile\*.json"; DestDir: {tmp}

[Run]
Filename: "{tmp}\UpdateSettingsFile.exe"; \
    Description: "Post Install Update Settings File"; \
    Flags: nowait postinstall skipifsilent

UpdateSettingsFile
确实在安装结束时启动。 但是,它失败并出现以下错误:

Error thrown from post install

您的应用程序中发生了未处理的异常。如果您点击 继续,应用程序将忽略此错误并尝试 继续。如果您单击“退出”,应用程序将立即关闭。

无法加载文件或程序集“Newtonsoft.Json,版本=13.0.0.0, 文化=中立,PublicKeyToken=30ad4febb2abaeed'。系统不能 找到指定的文件。

Newtonsoft.Json.dll
[Files]
部分中的文件位于同一文件夹中,应该可以找到。

我不明白为什么会失败。 我的目的是在安装后运行一个程序并在完成后将其删除。

installation inno-setup post-install
1个回答
1
投票

我猜

nowait
标志就是问题所在。安装程序启动 .exe 后,安装程序完成并删除 .dll。删除该标志以使安装程序在完成并删除 .dll 之前等待 .exe。

总的来说,我会删除所有三个标志。难道你不想无条件更新设置吗?

© www.soinside.com 2019 - 2024. All rights reserved.