首页 文章详情

dotnet-exec 0.5.0 released

DotNet NB | 92 2022-07-05 14:08 0 0 0
UniSMS (合一短信)

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

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

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

我们也可以直接引用本地的 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"

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

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


References

  • https://github.com/WeihanLi/dotnet-exec
  • https://www.nuget.org/packages/dotnet-execute/
  • https://hub.docker.com/r/weihanli/dotnet-exec


推荐阅读:
  API 工程化分享
  我的微软 MVP 之路
【译】ASP.NET Core 6 中的性能改进
【译】.NET 7 预览版 1 中的 ASP.NET Core 更新
【译】C# 11 特性的早期预览

点击下方卡片关注DotNet NB

一起交流学习

▲ 点击上方卡片关注DotNet NB,一起交流学习

请在公众号后台

回复 【路线图】获取.NET 2021开发者路线图
回复 【原创内容】获取公众号原创内容
回复 【峰会视频】获取.NET Conf开发者大会视频
回复 【个人简介】获取作者个人简介
回复 【年终总结】获取作者年终总结
回复 加群加入DotNet NB 交流学习群

长按识别下方二维码,或点击阅读原文。和我一起,交流学习,分享心得。


good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter