本文在吾爱首发,现已删帖转移到简书。
交代一下我写这个工具的原因:
因为工作需要,会给客户电脑上安装我公司软件,客户大部分都是Win10的机器,一部分是涉密单位,不允许机器联网(无线网卡都拆掉了)。
但是Win10安装NetFrameWork3.5是必须要联网下文件的,不知道成功用离线包安装的怎么做到的,反正我试了很多次都没成功。
就这个事情我下午在群里也问过许多人,有的叫我重装电脑,有的叫我封装个gho过去,有的叫我用手机联网。(这些都可行的话我不会做这个软件了)
遇到的情况是,领导就在你边上,你啥时候弄完他啥时候走,他们的电脑你是不可能重装/联网的,一直都会看着你。(主要重装浪费时间,而且不归自己
做的事情最好还是别做。)
于是乎我就用下午的时间在MSDN我告诉你上面把Win10从1507一直到现在的21H1的镜像文件全部下载了下来,然后从他们的安装包中把
NetFrameWork35的CAB文件全部提取了出来,用C#写了个自动安装的,因为对BAT不怎么熟。
最终还是使用DISM部署的,只是软件会根据电脑的Bulid版本号自动选择CAB包进行安装。
测试过程中发现一个有意思的事情:如果CAB包是需要安装两个的,使用Enable-Feature安装就可以了,如果是一个的,则需要使用Add-Package的方式进
行安装,不然好像是装不上的。
一些说明
- 不支持Win10以下的机器
- 编写框架为.netframework 4.7.2,如果发现有提示需要安装框架的情况,麻烦反馈一下。
- 最低Win10版本必须保证是1507的版本(Bulid版本号:10240)
- Winform的程序会根据物理设备的分辨率显示方式会有些不同,所以如果发现一些控件偏移,属于正常事件....这个也没法弄,除非改成WPF开发。
- 测试中发现WIN10 LSTB貌似有点问题,软件貌似打开困难、自带的net4.6卸载报错、原版镜像提取出来的CAB文件无法安装等等。
- UI设计丑陋,请见谅。
- 支持添加CAB文件,以内部版本号命名即可。
- 请和目录下的CabFiles目录配合使用。
下载链接
https://cloud.189.cn/web/share?code=R7ZR7f73aEBb
密码:n6qn【天翼】
【Google云盘和MEAG】
https://drive.google.com/file/d/13eBHrrn86w7wzPELA_0lqRji78An63Cv/view?usp=sharing
https://mega.nz/file/fcxihQpZ#TcPmpwYZvDVOGu8aQpEIWeQOdqDVrINvBLQ5MoiPiPc
种子下载:
百度网盘:【https://pan.baidu.com/s/1laKiT8DbaYsakoN4GHwCOA 密码: qth5 】
蓝奏云:【https://wwr.lanzoui.com/ia7CUrnh5xa 密码:6d1x】(下载以后请把txt后缀名去掉)
更新个GITHUB
https://github.com/jidesheng6/Win10_Offline_InstallNETFX35【建议下载这个版本,上面的均为老版本】
压缩包信息
- CRC32:4DAB6CFB
- CRC64:E0C9DA455DA717BB
- SHA1:BCB5AB8AFE6DEC20D03B6E3AA2393F645E9D92FB
- SHA256: 7E1462D5022DB26D2DAFDF2A672A4EEB7528F89B0EACA340F92628600744AD57
附录
在Win10中对需要NETFX35环境的软件进行如下配置使其兼容4.0
按照微软官方文档来做就行,我给你概括一下:
假设你的程序是App.exe,在同目录新建一个App.exe.config文件(如果存在,则不需要,直接编辑),填入如下代码配置使.Net framework 4.x(CLR4.0)兼容此程序。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>
这样配置以后,程序将兼容在CLR4.0和CLR2.0上同时运行,win10可无需安装运行库。