Skip to content

Latest commit

 

History

History
230 lines (151 loc) · 5.28 KB

README.zh-CN.md

File metadata and controls

230 lines (151 loc) · 5.28 KB

dotnet-exec

Package Latest Latest Preview
dotnet-execute dotnet-execute dotnet-execute Latest
ReferenceResolver ReferenceResolver ReferenceResolver Latest

default

Docker Pulls

For English

Intro

dotnet-exec 是一个可以执行 C# 程序而不需要项目文件的命令行工具,并且你可以指定自定义的入口方法不仅仅是 Main 方法

Install/Update

dotnet tool

最新的稳定版本:

dotnet tool update -g dotnet-execute

最新的预览版本:

dotnet tool update -g dotnet-execute --prerelease

容器支持

使用 docker

docker run --rm weihanli/dotnet-exec:latest "1+1"
docker run --rm weihanli/dotnet-exec:latest "Guid.NewGuid()"
docker run --rm --pull=always weihanli/dotnet-exec:latest "ApplicationHelper.RuntimeInfo"

使用 podman

podman run --rm weihanli/dotnet-exec:latest "1+1"
podman run --rm weihanli/dotnet-exec:latest "Guid.NewGuid()"
podman run --rm --pull=always weihanli/dotnet-exec:latest "ApplicationHelper.RuntimeInfo"

完整的 tag 列表请参考 https://hub.docker.com/r/weihanli/dotnet-exec/tags

Examples

Get started

执行本地文件:

dotnet-exec HttpPathJsonSample.cs

执行本地文件并且自定义入口方法:

dotnet-exec 'HttpPathJsonSample.cs' --entry MainTest

执行远程文件:

dotnet-exec 'https://github.com/WeihanLi/SamplesInPractice/blob/master/net7Sample/Net7Sample/ArgumentExceptionSample.cs'

执行原始代码:

dotnet-exec 'Console.WriteLine(1+1);'

执行原始脚本:

dotnet-exec 'script:1+1'
dotnet-exec 'Guid.NewGuid()'

References

执行原始代码并自定义程序集引用:

NuGet 包引用:

dotnet-exec 'CsvHelper.GetCsvText(new[]{1,2,3}).Dump();' -r "nuget: WeihanLi.Npoi,2.5.0" -u "WeihanLi.Npoi"

本地 dll 引用:

dotnet-exec 'CsvHelper.GetCsvText(new[]{1,2,3}).Dump();' -r "./out/WeihanLi.Npoi.dll" -u "WeihanLi.Npoi"

本地目录下的 dll 引用:

dotnet-exec 'CsvHelper.GetCsvText(new[]{1,2,3}).Dump();' -r "folder: ./out" -u "WeihanLi.Npoi"

本地项目引用:

dotnet-exec 'CsvHelper.GetCsvText(new[]{1,2,3}).Dump();' -r "project: ./WeihanLi.Npoi.csproj" -u "WeihanLi.Npoi"

框架引用:

dotnet-exec 'WebApplication.Create().Run();' --reference 'framework:web'

使用 --web 一个选项来添加 web 框架引用:

dotnet-exec 'WebApplication.Create().Run();' --web

Usings

执行原始代码并且自定义命名空间引用:

dotnet-exec 'WriteLine(1+1);' --using "static System.Console"

执行原始脚本并且自定义命名空间引用:

dotnet-exec 'CsvHelper.GetCsvText(new[]{1,2,3}).Dump()' -r "nuget:WeihanLi.Npoi,2.5.0" -u WeihanLi.Npoi

More

执行原始代码并且指定更多依赖:

dotnet-exec 'typeof(LocalType).FullName.Dump();' --ad FileLocalType2.cs
dotnet-exec 'typeof(LocalType).FullName.Dump();' --addition FileLocalType2.cs

执行原始代码并且指定从项目文件中提取 using 信息和 reference 信息:

dotnet-exec 'typeof(LocalType).FullName.Dump();' --project ./Sample.csproj

执行本地文件并指定启用预览特性:

dotnet-exec RawStringLiteral.cs --preview

Config Profile

你可以自定义常用的配置到一个 profile 配置里以方便重复使用。

列出所有可用的 profile 配置:

dotnet-exec profile ls

配置一个 profile:

dotnet-exec profile set web -r "nuget:WeihanLi.Web.Extensions" -u 'WeihanLi.Web.Extensions' --web --wide false

获取一个 profile 配置详情:

dotnet-exec profile get web

移除不需要的 profile 配置:

dotnet-exec profile rm web

执行代码时指定某一个 profile 配置:

dotnet-exec 'WebApplication.Create().Chain(_=>_.MapRuntimeInfo()).Run();' --profile web --using 'WeihanLi.Extensions'

image

执行代码时指定某一个 profile 配置并且移除配置中的某一个 using:

dotnet-exec 'WebApplication.Create().Run();' --profile web --using '-WeihanLi.Extensions'

Acknowledgements