递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 636|回复: 7
打印 上一主题 下一主题

[视窗] 解压缩灵异事件

[复制链接]

59

主题

233

帖子

1066

积分

金牌会员

Rank: 6Rank: 6

积分
1066
跳转到指定楼层
楼主
发表于 2024-10-18 16:42:10 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
做一个更新程序,逻辑是下载网上的更新压缩包到软件根目录然后解压缩覆盖,当压缩包里是文件夹和一个普通exe程序时就可以,当压缩包里包含根目录下dll文件时就解压缩失败,如果将dll和exe合并也会解压缩失败,有没有大佬能理解这是啥原因?就卡在解压缩这里了,感觉遇上鬼了!

回复

使用道具 举报

51

主题

540

帖子

4237

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4237
沙发
发表于 2024-10-18 17:53:59 | 只看该作者
你试试火山模块的中 压缩包读写类_.解压到
回复

使用道具 举报

15

主题

156

帖子

1810

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
1810
板凳
发表于 2024-10-18 18:03:51 来自手机 | 只看该作者
要是dll文件已经存在而且被调用的话,应该会写出失败,如果没有的话,那的确有问题了
回复

使用道具 举报

26

主题

1899

帖子

6918

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
6918
地板
发表于 2024-10-18 18:08:42 | 只看该作者
文件被占用,没办法覆盖解压的
回复

使用道具 举报

59

主题

233

帖子

1066

积分

金牌会员

Rank: 6Rank: 6

积分
1066
5#
 楼主| 发表于 2024-10-18 20:18:26 | 只看该作者
综合我发的三个帖子的讨论,已找到解决方向,下面是我的测试过程,说不定以后还有人遇到相同问题:
解压命令我采用的是:压缩包读写类_.解压到
dll与exe融合我用的是Enigma Virtual Box,融合的执行文件我下面简称融合版,没有融合的简称原版。
RAR格式和ZIP格式都测了,结果相同。

融合版执行文件  升级   融合版更新包    无法升级
融合版执行文件  升级   原版更新包       无法升级
融合版执行文件  升级   去除DLL文件的原版更新包       无法升级
原版执行文件  升级      融合版更新包     升级成功
原版执行文件  升级      原版更新包       无法升级
原版执行文件  升级      去除DLL文件的原版更新包       升级成功

原因总结:打开升级程序时系统的dll文件被占用,导致带有dll文件的解压缩无法成功覆盖,升级失败。
融合版执行文件只是表面隐藏了dll文件,实际还是被占有了,也就无法被覆盖。

解决方法:1.正在尝试的:由于dll较少,系统自带的无法指定目录的两个采用静态编译,其余正好都可以动态加载,让部分dll指定目录,让根目录无dll文件,这样应该就可以更新了。
2.找其他更新程序案例看有没有更好的实现思路。
回复

使用道具 举报

7

主题

59

帖子

738

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
738
6#
发表于 2024-10-18 22:09:45 | 只看该作者
升级不是应该下载,解压到一个临时目录,然后结束程序后再移动过去替换吗?
回复

使用道具 举报

5

主题

44

帖子

382

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
382
7#
发表于 2024-10-22 08:38:59 | 只看该作者
99101617 发表于 2024-10-18 20:18
综合我发的三个帖子的讨论,已找到解决方向,下面是我的测试过程,说不定以后还有人遇到相同问题:
解压命 ...

在程序目录,建一个子目录,子目录写好更新程序exe ,主程序检测到更新,执行更新exe并退出主程序,这样更新就没问题,不存在覆盖失败
回复

使用道具 举报

59

主题

233

帖子

1066

积分

金牌会员

Rank: 6Rank: 6

积分
1066
8#
 楼主| 发表于 2024-10-22 12:09:31 | 只看该作者
dxp04 发表于 2024-10-22 08:38
在程序目录,建一个子目录,子目录写好更新程序exe ,主程序检测到更新,执行更新exe并退出主程序,这样更 ...

好办法,我试试
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-21 22:33 , Processed in 0.101402 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表