使用DesktopAppConverter打包Inno Setup应用时遇文件占用删除错误求助
我以管理员身份运行DesktopAppConverter,已成功下载并配置Windows_BaseImage_DAC_17134.wim镜像。尝试将基于Inno Setup制作的安装程序以/VERYSILENT静默模式打包为应用,使用的命令行指令如下:
DesktopAppConverter.exe -Installer C:\!DBLSetup\Output\DBL_Install.exe -InstallerArguments "/VERYSILENT" -Destination C:\!DBLPack\ -PackageName "DBLMoney" -Publisher "CN=DBLMoney" -Version 3.1.3.0 -Verbose
执行后出现如下错误提示:
PowerShell Error Record:Cannot remove item C:\DesktopAppConverter\423658cc-a23a-4a8d-9665-385e4a6d52d0\shared: The process cannot access the file 'C:\DesktopAppConverter\423658cc-a23a-4a8d-9665-385e4a6d52d0\shared' because it is being used by another process
且该错误涉及的C:\DesktopAppConverter\423658cc-a23a-4a8d-9665-385e4a6d52d0\shared为空白文件夹。
我之前碰到过完全一样的问题,以下是几个亲测有效的解决步骤,按顺序尝试即可:
终止占用临时文件夹的进程
打开任务管理器(Ctrl+Shift+Esc),切换到「详细信息」标签,右键点击列标题勾选「命令行」,然后搜索包含423658cc-a23a-4a8d-9665-385e4a6d52d0(或是其他随机GUID命名的临时目录)的进程,找到后右键选择「结束任务」。之后重新运行你的转换命令。手动清理转换器临时目录
先确保没有正在运行的DesktopAppConverter任务,然后删除C:\DesktopAppConverter下所有以随机GUID命名的临时文件夹。清理完成后,重启管理员权限的PowerShell/命令提示符,再重新执行转换指令。优化Inno Setup的静默安装参数
Inno Setup的/VERYSILENT有时会残留后台进程导致文件锁,尝试给安装参数加上/NORESTART,避免安装程序触发重启相关的进程占用。修改后的命令如下:DesktopAppConverter.exe -Installer C:\!DBLSetup\Output\DBL_Install.exe -InstallerArguments "/VERYSILENT /NORESTART" -Destination C:\!DBLPack\ -PackageName "DBLMoney" -Publisher "CN=DBLMoney" -Version 3.1.3.0 -Verbose重置转换器的Base Image环境
如果前面的方法都无效,可能是Base Image的虚拟机状态异常。先执行Remove-AppxPackage清理残留的转换包,然后重新运行转换器的初始化命令(若有需要),或者重新挂载Base Image后再尝试转换。
内容的提问来源于stack exchange,提问作者Jeff Las

