Inno setup 关于在Inno安装脚本的[UninstallRun]部分中使用RunOnceId的说明
这是我的Inno setup 关于在Inno安装脚本的[UninstallRun]部分中使用RunOnceId的说明,inno-setup,uninstallation,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: ru
[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;
当我使用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次。没什么大不了的,但如果用户检查卸载程序日志(以防出现问题),他们会看到很多失败,这可能会误导他们
请注意,您无法追溯修复此问题。以前的安装程序排队的卸载命令仍将针对以前的每次安装执行。但是,如果这是一个大问题,你可能已经注意到了