dotnet-exec 0.17.0 Released
内容提要
dotnet-exec 0.17.0是一个dotnet tool命令行工具,用于执行C#代码,支持自定义项目入口方法。新增了调试模式、版本信息打印等功能,优化了NuGet引用和配置支持,支持多个source。Docker镜像添加了默认entrypoint,解决了权限问题。
延伸解读
调试模式:通过环境变量灵活启用
新版本增加了通过环境变量 DOTNET_EXEC_DEBUG_ENABLED 启用调试模式的功能。对于已经配置好的执行脚本,如果不想修改脚本内容,只需设置该环境变量即可输出更多调试信息。这为排查问题提供了便利,同时保持了脚本的稳定性。
NuGet 引用优化:支持多源选择
通过提取 ReferenceResolver 项目,dotnet-exec 简化了 Roslyn 的依赖引用,并增强了对 NuGet 的支持。现在用户可以选择多个 NuGet source 进行过滤,类似于 Rider 的包管理界面。这一改进让包源管理更加灵活,尤其适合需要从多个源获取包的用户。
Docker 镜像改进:简化使用与权限修复
Docker 镜像新增了默认 entrypoint,现在运行镜像时无需再显式指定 dotnet-exec,直接传递参数即可。同时,镜像中为 dotnet-exec 添加了可执行权限,解决了非 root 用户执行时的权限问题。这些改动使得在 GitHub Action 中使用该镜像更加简单。
Q&A
dotnet-exec 是什么?它有什么用途?
dotnet-exec 是一个 dotnet tool 命令行工具,用于执行 C# 代码,可以运行简单的 C# 程序而无需创建项目文件,让 C# 像 Python/Node.js 一样简单,并且支持自定义项目的入口方法(不限于 Main 方法)。
如何安装或更新 dotnet-exec?
可以使用 dotnet tool 命令安装或更新。安装/更新最新稳定版本:dotnet tool update -g dotnet-execute;安装最新的 preview 版本:dotnet tool update -g dotnet-execute --prerelease。
dotnet-exec 0.17.0 新增了哪些功能?
新增了调试模式(通过环境变量 DOTNET_EXEC_DEBUG_ENABLED 启用)和 --info 选项打印版本信息;优化了 NuGet 引用和配置支持,支持多个 source;Docker 镜像添加了默认 entrypoint,解决了权限问题。
如何在不安装 .NET SDK 的情况下使用 dotnet-exec?
可以通过 Docker 或 Podman 运行 dotnet-exec 镜像,例如:docker run --rm --pull=always weihanli/dotnet-exec:latest "ApplicationHelper.RuntimeInfo"。
dotnet-exec 的调试模式如何启用?
可以通过配置环境变量 DOTNET_EXEC_DEBUG_ENABLED 来启用调试模式,以便在执行脚本时看到更多信息。
dotnet-exec 0.17.0 在 Docker 镜像方面做了哪些改进?
Docker 镜像新增了默认 entrypoint,无需再显式指定 dotnet-exec,直接指定参数即可;同时将 dotnet-exec 显式设置为可执行权限,解决了非 root 用户执行时的权限问题,使得 GitHub Action 使用更加简单。