dotNet开发者常常苦恼于如何快速在用户环境中准备好运行时环境。服务器环境相对容易很多,不管是Linux还是Windows,装一次用多次。桌面环境安装dotNet运行时非常痛苦,Windows版本太多,兼容性不同,国产Linux桌面也很多,加上多种芯片指令集,事情变得更复杂。
幸运四叶草LuckyClover应运而生!
源码:https://github.com/NewLifeX/LuckyClover
国内:http://git.newlifex.com/NewLife/LuckyClover
Windows命令版
幸运四叶草clover命令行安装,适合打包在应用安装包中,安装时首先执行命令检测并安装dotNet运行时。
clover的原理是检测本机已安装net运行时,如果不存在则联网下载正确运行时并安装。已下载文件会缓存起来,下次不必再次下载。在离线安装环境,可提前把文件都准备好。
不同dotNet运行时在不同Windows系统上,需要一些前置准备工作,例如安装KB补丁或者导入证书,或者安装VC运行时库。
命令说明如下:
# 自动安装适合当前系统最高版本dotNet运行时
clover40.exe net
# 自动安装指定版本
clover40.exe net48
clover45.exe net8-desktop
# Windows Server为IIS安装
clover45.exe net8-host
clover.exe有多个版本,版本越高功能越齐全,上述命令可根据需要替换为合适的clover。
例如,clover45表示net45版,要求有net45运行时,一般用于检测并安装net48或者net80等高版本;
clover40表示net40版本,win7sp1后系统自带net40;
clover20表示net20版本,早起win7自带;
clover.exe是C++开发的x86版本,不依赖net运行时,但它只能检测安装net45等少数几个版本;
clover64.exe是C++开发的x64版本,适用于64位winxp和win7;
各版本下载地址(工具会持续更新,下载地址不变):
win7以上:http://x.newlifex.com/dotNet/clover40.exe
win7:http://x.newlifex.com/dotNet/clover20.exe
winxp:http://x.newlifex.com/dotNet/clover.exe
win64:http://x.newlifex.com/dotNet/clover64.exe
Windows桌面版
幸运四叶草LuckyClover桌面安装版,提供给初级实施人员。
net45版:http://x.newlifex.com/dotNet/LuckyClover45.zip
net40版:http://x.newlifex.com/dotNet/LuckyClover.zip
net20版:http://x.newlifex.com/dotNet/LuckyClover2.zip
右边运行时环境可以直接选择安装所需dotNet运行时。
!!!补天乃终极神器,它会抹去系统中net存在痕迹,进而允许重新安装dotNet,一般用于魔改版win7。
Linux安装
包括服务器和桌面环境,自动识别指令集架构,支持x86/x64/arm/arm64/mips64/loongarch64/riscv64。
curl http://x.newlifex.com/dotNet/net.sh | sudo bash
程序打包
clover命令还支持对指定目录文件进行zip打包。
以下是桌面版安装LuckyClover的打包脚本:
set base=..\Bin
set dest=%base%\publish
mkdir %dest%
copy %base%\clover\Win32\clover.exe %dest%\clover.exe /y
copy %base%\clover\x64\clover.exe %dest%\clover64.exe /y
copy %base%\net20\clover.exe %dest%\clover20.exe /y
copy %base%\net40\clover.exe %dest%\clover40.exe /y
copy %base%\net45\clover.exe %dest%\clover45.exe /y
copy %base%\publish-windows\clover.exe %dest%\clover80.exe /y
copy %base%\publish-linux64\clover %dest%\clover /y
del %dest%\LuckyClover45.zip /f
del %dest%\LuckyClover.zip /f
del %dest%\LuckyClover2.zip /f
%base%\net8.0\clover.exe zip %dest%\LuckyClover45.zip %base%\Installer45\*.exe %base%\Installer45\*.exe.config %base%\Installer45\*.dll
%base%\net8.0\clover.exe zip %dest%\LuckyClover.zip %base%\Installer4\*.exe %base%\Installer4\*.exe.config %base%\Installer4\*.dll
%base%\net8.0\clover.exe zip %dest%\LuckyClover2.zip %base%\Installer\*.exe %base%\Installer\*.exe.config %base%\Installer\*.dll