Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Inno setup 关于在Inno安装脚本的[UninstallRun]部分中使用RunOnceId的说明_Inno Setup_Uninstallation - Fatal编程技术网

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次。没什么大不了的,但如果用户检查卸载程序日志(以防出现问题),他们会看到很多失败,这可能会误导他们

请注意,您无法追溯修复此问题。以前的安装程序排队的卸载命令仍将针对以前的每次安装执行。但是,如果这是一个大问题,你可能已经注意到了