Windows脚本自动更新用exec替换当前可执行文件?

我正在尝试在Perl Windows中构建一个快速自动更新程序.我注意到当我调用cpanp来安装软件包的更新时,由于脚本当前正在运行,因此无法安装新版本的脚本.我现在用CORE :: system()调用cpanp.如果我用exec()调用cpanp会释放可替换的可执行文件吗?或者,即使执行已完全转移到cpanp,Windows是否仍保持捆绑?

目前,我的流程看起来像这样,

>从服务器下载META.yml
>解析出META.yml的版本
>与当前的$VERSION进行比较

>如果当前版本较低,请使用META.yml中的数据生成版本字符串

>使用META.yml的主机/路径和版本/数据信息生成要打包的URL
>通知用户更新
> Spawn cpanp用URL运行更新.

>如果当前版本相同

>什么都不做

在更换可执行文件时,system()在Win32上的行为会不同于exec()吗?在Linux上它按设计工作.

我刚试过它. exec在Linux和Win32上都能正常工作. See this page for portability info on Perl.
相关文章
相关标签/搜索