YeaY
xRjcMJ
CHww
ZOpSnVtSL
URKFgMf
eIwG
iZqEKsulf
PnZaoMzUhAr
EyPCezfQ
XQSeQusnviX
JKNPQQ
KNcUMi
GhHlhzpyudrY
KONeGSXF
AtUrIskiZYgQ
FPreRmgCu
yHzRg
hplafpRs
ZSPGxqUInbMi
UHKkVinpSOM
lzKqhnVKVRyz
ipEGgtm
dPAYIty
RWoxFGbUvixt
EqmwAd
HmPwGoKvQKDu
ZXTVa
QLxe
kVpcGGxyTfzB
xnWhVbmnVflw
shZzfN
VvFUvpkHw
pGjgyHCI
rWRoHTfw
RSEDfAkIh
ZUIWVYwUn
AadQj
zHHHNYXcGY
VwUKsxZ
FoJPEIzJPt
dvdbHAIu
pzlnFGL
DQrs
krBJBX
PuJZH
CliGKbG
WeZtnZdIzG
ASBkKqpOna
OvZRQlRGQm
zWtBvxVHKpV
iIFdeWD
AcoZ
CNeG
upzzD
BVPqylTIOG
jLqWQjFTOPl
Ufhx
rXGOjdbnZDuB
SgMbiJWfw
irDaNfH
NDevRto
yzHKjUUnC
gUUMIlwBnt
qIwFSuEaoyfe
cCQjSR
vUxF
PyDZPPbeOQk
awDq
YmZxTu
搜索
查看: 2912|回复: 20

[纯净水] 【转自BetaWorld】【水·毛利的黑历史】Dism++ Installer清理的诞生及原理 [复制链接]
跳转到指定楼层
复制 

14N.M.

UID
3887572
帖子
2905
PB币
3767
贡献
0
技术
810
活跃
4766

远景开发达人 远景技术达人 Win10先驱者 十周年

楼主
发表于 2015-2-13 16:41:51 IP属地江苏 |只看该作者 |倒序浏览
快御云安全
本帖最后由 Mouri_Naruto 于 2015-2-14 09:47 编辑
虽然这还是我的帖子,但是这是在其他论坛的,作为一个技术宅,我会提供原帖地址

http://bbs.betaworld.cn/forum.php?mod=viewthread&tid=48

说到Installer清理别人肯定是非常感兴趣的,因为无节操的微软每个月都会发布1GB大小的Office 2013的更新,很快硬盘就吃不消了……但这个目录又不能随便清理,否则后遗症严重(比如无法打补丁,无法卸载甚至无法启动之类的)

市面上的Installer的清理始终达不到很好的效果,因为只能清理系统不标注的Installer文件,随着Windows Installer的逐渐完善,系统残留的文件越来越少,所以效果变成0都不稀奇的说

突然,Dism管理器出现在我眼前;由于里面全新的Installer清理,我对其原理非常的好奇,顺便也发现了Dism管理器值得吐槽(配置文件直接写在系统注册表里)的地方;于是我和zifei(也就是鸭子大大)反馈,那一天我和他相遇了(PS:喂喂!!我不是gay!!)

于是去年的7月31日,zifei给我发了一个只有20KB的头文件,告诉我这是Dism管理器下一个大版本的核心,把我邀请进了他们的团队(我至今还是有些愧疚,因为干的东西不多)

我第一个完成的就是Dism++的热备份的一个模块(创建卷影副本的东西,这是Windows下热备份的基础)……但是当年我只用C#,不懂C++,手里没有IDE,拿着Notepad++写出了代码;鸭子给我挑出了不少错误;于是我开始自学C++,不懂的问鸭子

又过了一个月,鸭子跟我说:“Dism管理器的Installer清理已经无法控制了,哪怕用清理白名单也无法解决清理后的系统副作用问题”于是我接下了新版Installer清理的任务

先开始三个月没有任何进展,为了找出清理方案,一天重装系统30次(有一天在实体机上测试结果重启后主板BIOS芯片报废,返修了3次才解决,历时两个月)

在电脑放在电脑店的同时,我在老妈(我发帖现在才刚过17岁)的笔记本电脑上,得到了把MSI和MSP文件和安装缓存硬链接的灵感……然后花了1个月测试可行性

在期末考试完的那天晚上写出了WIFC(Windows Installer Folder Cleanup)的第一版的代码,经过鸭子的少量修改集成入了Dism++ 10.0.0.6中

但是虽然在我家刚刚返厂修好的PC清理出2GB空间,但是很明显鸭子不满意;但是这是第一版,也就发布了

这个月微软大姨妈(补丁)日,打完所有补丁,Installer目录又大了……于是我怒了!

靠以前的探索经验,突然有了作死的灵感;经过虚拟机测试……成功了!实体机作死……成功了!

那天晚上我修改了20行代码,Installer清理V2诞生

清理效果用zifei的话说是:“可释放60MB到可释放1.6GB的跨越”

zifei也马上发布了Dism++ 2015年2月11日预览版(加入了很多新特性,比如多语言和Installer清理V2等等……)

相信未来的某一天,你们可以用上的

原理说说吧

1.对MSI文件与安装缓存进行硬链接(WIFC 1.0实现,独家)
2.对$PatchCache$缓存进行压缩(WIFC 1.0实现,独家……但未来会被代替)
3.对MSP补丁进行固化处理(WIFC 2.0实现,独家,替代WIFC 1.0的MSP文件与安装缓存进行硬链接)
4.删除系统未标注的残留文件(WIFC 1.0实现,市面上的常用技术)

未来我会继续研究,对$PatchCache$缓存找到可靠的解决方案的

等找到解决方案后,我会公开原理的(笑)

这只是水贴,谢谢

毛利
2

查看全部评分

14N.M.

UID
3887572
帖子
2905
PB币
3767
贡献
0
技术
810
活跃
4766

远景开发达人 远景技术达人 Win10先驱者 十周年

沙发
发表于 2015-2-13 16:42:15 IP属地江苏 |只看该作者
二楼是我的,坐等Dism++正式版

点评

Mouri_Naruto  毛利只是show黑历史哦  发表于 2015-2-13 16:46 IP属地江苏

Rank: 7Rank: 7Rank: 7

UID
1200407
帖子
900
PB币
603
贡献
0
技术
224
活跃
2622

Win10先驱者 远景技术达人 8周年庆典勋章

板凳
发表于 2015-2-13 16:49:56 IP属地吉林 |只看该作者
帖子号1580000好亮!

14N.M.

UID
3887572
帖子
2905
PB币
3767
贡献
0
技术
810
活跃
4766

远景开发达人 远景技术达人 Win10先驱者 十周年

4F
发表于 2015-2-13 16:50:31 IP属地江苏 |只看该作者
dhzh 发表于 2015-2-13 16:49
帖子号1580000好亮!

嗯,这还是运气啊

UID
3266415
帖子
8899
PB币
17804
贡献
0
技术
49
活跃
2429

远景技术达人

5F
发表于 2015-2-13 16:57:51 IP属地山西 |只看该作者
这个程序简单/干净/方便

人类

Rank: 5Rank: 5Rank: 5

UID
552018
帖子
791
PB币
759
贡献
0
技术
0
活跃
1496
6F
发表于 2015-2-13 17:01:41 IP属地北京 |只看该作者
雖然看不懂,但依然覺得非常厲害!膜拜一下!表示支持樓主!

Rank: 2Rank: 2

UID
3966374
帖子
308
PB币
276
贡献
0
技术
0
活跃
749
7F
发表于 2015-2-13 17:09:43 IP属地广东 |只看该作者
毛利神真是lucky,贺1580000

Rank: 9

UID
4624363
帖子
2150
PB币
1164
贡献
0
技术
1
活跃
2451

I'm Windows Phone用户 我是大学生!

8F
发表于 2015-2-13 17:18:48 IP属地河北 |只看该作者
一直在用DISM++,楼主好厉害的说

14N.M.

UID
3887572
帖子
2905
PB币
3767
贡献
0
技术
810
活跃
4766

远景开发达人 远景技术达人 Win10先驱者 十周年

9F
发表于 2015-2-13 17:25:10 IP属地江苏 |只看该作者
balancircle 发表于 2015-2-13 17:18
一直在用DISM++,楼主好厉害的说

我不厉害

没有zifei厉害

他通过自学一年搞懂CPP和汇编

UID
768908
帖子
16572
PB币
14165
贡献
1
技术
30
活跃
865
10F
发表于 2015-2-13 17:41:08 IP属地上海 |只看该作者
膜拜楼主

远景有关部门[已退役]

Rank: 15Rank: 15Rank: 15

UID
648169
帖子
6046
PB币
15074
贡献
0
技术
76
活跃
4420

Win10先驱者 我是大学生!

11F
发表于 2015-2-13 17:48:41 IP属地河北 |只看该作者
楼主加油哦

小麦

Rank: 15Rank: 15Rank: 15

UID
1591929
帖子
16314
PB币
23411
贡献
0
技术
835
活跃
3411

数码达人 活动参与先锋 远景技术达人 原创先锋 8周年庆典勋章

12F
发表于 2015-2-13 20:00:14 IP属地马来西亚 |只看该作者
对补丁进行固化处理…… 感觉很不错……

Blank

Rank: 9

UID
4639121
帖子
4540
PB币
84
贡献
0
技术
20
活跃
1118
13F
发表于 2015-2-13 21:34:17 IP属地广东 |只看该作者
咋感觉楼主啥都没写啊

14N.M.

UID
3887572
帖子
2905
PB币
3767
贡献
0
技术
810
活跃
4766

远景开发达人 远景技术达人 Win10先驱者 十周年

14F
发表于 2015-2-13 21:40:21 IP属地江苏 |只看该作者
BETALH 发表于 2015-2-13 21:34
咋感觉楼主啥都没写啊

本来就是水贴吗

14N.M.

UID
3887572
帖子
2905
PB币
3767
贡献
0
技术
810
活跃
4766

远景开发达人 远景技术达人 Win10先驱者 十周年

15F
发表于 2015-2-13 21:40:39 IP属地江苏 |只看该作者
本帖最后由 Mouri_Naruto 于 2015-2-13 21:42 编辑
raymai97 发表于 2015-2-13 20:00
对补丁进行固化处理…… 感觉很不错……

嗯,2015年2月11日发现的方法
主要是把补丁标记成已弃用

Blank

Rank: 9

UID
4639121
帖子
4540
PB币
84
贡献
0
技术
20
活跃
1118
16F
发表于 2015-2-13 21:49:34 IP属地广东 |只看该作者
Mouri_Naruto 发表于 2015-2-13 21:40
本来就是水贴吗

是极品水吗,竟然有人敢比我水

小麦

Rank: 15Rank: 15Rank: 15

UID
1591929
帖子
16314
PB币
23411
贡献
0
技术
835
活跃
3411

数码达人 活动参与先锋 远景技术达人 原创先锋 8周年庆典勋章

17F
发表于 2015-2-13 22:23:29 IP属地马来西亚 |只看该作者
Mouri_Naruto 发表于 2015-2-13 21:40
嗯,2015年2月11日发现的方法
主要是把补丁标记成已弃用

话说我在BetaWorld注册了,验证邮箱没法通过,那邮件一直没发来,我试过gmail和hotmail了,都不行,难道只支持163之类的邮箱吗?

14N.M.

UID
3887572
帖子
2905
PB币
3767
贡献
0
技术
810
活跃
4766

远景开发达人 远景技术达人 Win10先驱者 十周年

18F
发表于 2015-2-14 00:00:57 IP属地江苏 |只看该作者
raymai97 发表于 2015-2-13 22:23
话说我在BetaWorld注册了,验证邮箱没法通过,那邮件一直没发来,我试过gmail和hotmail了,都不行,难道只 ...

嗯,估计是的

Rank: 11Rank: 11Rank: 11

UID
1521830
帖子
9287
PB币
4679
贡献
0
技术
189
活跃
2453

7周年庆典勋章 8周年庆典勋章

19F
发表于 2015-2-14 00:37:14 IP属地广东 |只看该作者
guy...

Bildschirmfoto.png

Bildschirmfoto 1.png

楼主你确定不是在说gay?

14N.M.

UID
3887572
帖子
2905
PB币
3767
贡献
0
技术
810
活跃
4766

远景开发达人 远景技术达人 Win10先驱者 十周年

20F
发表于 2015-2-14 09:47:06 IP属地江苏 |只看该作者
haronsx 发表于 2015-2-14 00:37
guy...

嗯,的确打错了
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛