And*_*kle 3 inno-setup uninstallation
这是我的[UninstallRun]部分:
[UninstallRun]
Filename: {dotnet40}\regasm.exe; Parameters: /u MSAToolsLibrary_x86.dll; WorkingDir: {app}; Flags: runhidden;
Filename: {dotnet4064}\regasm.exe; Parameters: /u MSAToolsLibrary_x64.dll; WorkingDir: {app}; Flags: runhidden; Check: IsWin64;
Filename: {dotnet40}\regasm.exe; Parameters: /u MSAToolsGMailLibrary_86.dll; WorkingDir: {app}\MSAToolsGMailLibrary; Flags: runhidden
Filename: {dotnet4064}\regasm.exe; Parameters: /u MSAToolsGMailLibrary_64.dll; WorkingDir: {app}\MSAToolsGMailLibrary; Flags: runhidden; Check: IsWin64;
Run Code Online (Sandbox Code Playgroud)
当我使用 Inno Setup 6.1.1 进行编译时,我收到以下警告:
警告:存在
[UninstallRun]不带参数的节条目RunOnceId。通过将字符串分配给RunOnceId,您可以确保特定[UninstallRun]条目在卸载过程中仅执行一次。[UninstallRun]有关详细信息,请参阅帮助文件中的“ ”主题。
我查了一下帮助,RunOnceId它指出:
仅在一个
[UninstallRun]部分有效。如果同一应用程序安装多次,“运行”条目将在卸载日志文件中重复。通过将字符串分配给RunOnceId,您可以确保特定[UninstallRun]条目在卸载过程中仅执行一次。例如,如果卸载日志中的两个或多个“运行”条目具有“DelService”设置,则仅执行RunOnceId具有“DelService”设置的最新条目;RunOnceId其余的将被忽略。请注意,RunOnceId比较区分大小写。如果您没有将字符串分配给RunOnceId,编译器会对此发出警告,可以使用 来禁用它MissingRunOnceIdsWarning。
我可以看到我可以关闭警告。但我想知道我是否真的需要在我的设置中使用这个参数,因为到目前为止我从未这样做过。
您应该使用该参数,如警告所示。
如果不这样做,则每次升级(除非您的安装程序卸载以前的版本),[UninstallRun]命令的新执行都会排队。因此,如果您安装然后升级 9 次,则卸载时所有卸载命令将执行 10 次。当然,就你的情况而言,这只意味着你的每个regasm /u命令都会失败 9 次。没什么大不了的,但是如果用户检查卸载程序日志(以防出现问题),他们会看到很多失败,这可能会误导他们。
请注意,您无法追溯修复此问题。对于过去的每个安装,仍将执行先前安装程序排队的卸载命令。但同样,如果这是一个主要问题,您可能已经注意到了。
| 归档时间: |
|
| 查看次数: |
2414 次 |
| 最近记录: |