dotnet-exec 0.5.0 released

dotnet-exec 0.5.0 released

Intro

dotnet-exec 是一个 C# 程序的小工具,可以用来运行一些简单的 C# 程序而无需创建项目文件,而且可以自定义项目的入口方法,支持但不限于 Main 方法

Install/Update

dotnet-exec 是一个 dotnet tool,可以使用安装 dotnet tool 的命令来安装

安装/更新最新稳定版本:

dotnet tool update -g dotnet-execute

安装最新的 preview 版本:

dotnet tool update -g dotnet-execute --prerelease

Updates

Features

Custom references

在 0.5.0 版本中用户可以自定义 reference,你可以使用 -r/--reference 选项来自定义引用的本地的 dll 或者 nuget 包

比如说下面这个引用 nuget 包的示例

dotnet-exec "code:typeof(CsvHelper).Assembly.Location.Dump()" -r "nuget:WeihanLi.Npoi" -u "WeihanLi.Npoi"

这里引用了 WeihanLi.Npoi 这个 nuget 包,没有指定版本的时候默认使用最新的稳定版本,目前是 2.3.0 所以我们看到的输出结果会是 2.3.0

67230c59e5c98158a36e8ad2c8d0b6a2.png

我们也可以指定具体的 NuGet 包版本,比如:

dotnet-exec "code:typeof(CsvHelper).Assembly.Location.Dump()" -r "nuget:WeihanLi.Npoi,2.1.0" -u "WeihanLi.Npoi"

e38afe53c231f365979f6ae46a57d3a6.png

我们也可以直接引用本地的 dll,比如我们引用上面 nuget 包中的本地 dll

dotnet-exec "code:typeof(CsvHelper).FullName.Dump()" -r "C:\Users\Weiha\.nuget\packages\weihanli.npoi\2.3.0\lib/net6.0/WeihanLi.Npoi.dll" -u "WeihanLi.Npoi"

469dfbe7c2ff1493400834671fee9569.png

Docker support enhancements

如果你不是 dotnet 开发者,或者不想安装 dotnet 环境,你也可以使用 docker 来尝试它

docker run --rm weihanli/dotnet-exec:0.5.0 dotnet-exec "code:(1+1).Dump()"

之前 docker 镜像是基于 SDK 的镜像来打包的,镜像比较大,0.5.0 版本开始使用 runtime 镜像来打包,比原来的镜像小了很多,对比 dockerhub 上镜像大小,可以发现比原来的镜像大小减少了大概 70%,可以参考:https://hub.docker.com/r/weihanli/dotnet-exec/tags

8b1000eb0ec4012188285eaae9a961f9.png

runtime 包中只包含了 runtime 程序集,不包含引用程序集,在编译的时候会使用引用程序集,没有 SDK 本地也就没有了引用程序集,会 fallback 到 nuget 包,为了减少第一次运行时的等待时间,这里有一个比较 tricky 的做法在 Dockerfile 的最后运行了一个 dotnet-exec 'code:"Hello .NET".Dump()' 来下载 .NET 框架的引用程序集,这样相同的 .NET 版本,就不需要再下载了,可以减少一些下载 NuGet 包和与 NuGet 服务器交互的时间,从而减少一些启动时间

f9c7f78035f701272017e713a42c93db.png


References

  • https://github.com/WeihanLi/dotnet-exec

  • https://www.nuget.org/packages/dotnet-execute/

  • https://hub.docker.com/r/weihanli/dotnet-exec

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值