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