dotnet-execute 0.28.0

dotnet tool install --global dotnet-execute --version 0.28.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local dotnet-execute --version 0.28.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=dotnet-execute&version=0.28.0
                    
nuke :add-package dotnet-execute --version 0.28.0
                    

dotnet-exec

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

default

Docker Pulls

GitHub Commit Activity

GitHub Release

BuiltWithDot.Net shield

中文介绍

Intro

dotnet-exec is a command-line tool for executing C# program without a project file, and you can have your custom entry point other than the Main method

Slides:

Github Action for executing without dotnet environment

Install/Update

dotnet tool

Latest stable version:

dotnet tool update -g dotnet-execute

Latest preview version:

dotnet tool update -g dotnet-execute --prerelease

Install failed? try the command below:

dotnet tool update -g dotnet-execute --source https://api.nuget.org/v3/index.json

or

dotnet tool update -g dotnet-execute --prerelease --add-source https://api.nuget.org/v3/index.json --ignore-failed-sources

Uninstall or failed to update? Try uninstall and install again

dotnet tool uninstall -g dotnet-execute

Container support

Execute with 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"

Execute with 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"

for the full image tag list, see https://hub.docker.com/r/weihanli/dotnet-exec/tags

Examples

Get started

Execute local file:

dotnet-exec HttpPathJsonSample.cs

Execute a local file with custom entry point:

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

Execute remote file:

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

Execute raw code:

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

Execute the raw script:

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

References

Execute raw code with custom references:

NuGet package reference:

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

Local dll reference:

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

Local dll in a folder references:

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

Local project reference:

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

Framework reference:

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

Web framework reference in one option:

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

Usings

Execute raw code with custom usings:

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

Execute script with custom reference:

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

More

Execute with additional dependencies

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

or

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

Execute with exacting references and usings from the project file

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

Execute file with preview features:

dotnet-exec RawStringLiteral.cs --preview

Config Profile

You can customize the config you used often into a config profile to reuse it for convenience.

List the profiles had configured:

dotnet-exec profile ls

Configure a profile:

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

Get the profile details:

dotnet-exec profile get web

Remove the profile not needed:

dotnet-exec profile rm web

Executing with specific profile config:

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

image

Executing with specific profile config and remove preset specific using:

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

Alias command

The alias command allows you to manage aliases for frequently used commands.

List aliases

To list all configured aliases, use the list subcommand:

dotnet-exec alias list

You can also use dotnet-exec alias ls to list aliases.

Set alias

To set a new alias, use the set subcommand followed by the alias name and value:

dotnet-exec alias set <aliasName> <aliasValue>

For example, to set an alias for generating a new GUID:

dotnet-exec alias set guid "Guid.NewGuid()"
Unset alias

To remove an existing alias, use the unset subcommand followed by the alias name:

dotnet-exec alias unset <aliasName>

For example, to remove the guid alias:

dotnet-exec alias unset guid

Acknowledgements

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last updated
0.28.0 402 15 days ago
0.28.0-preview-20250516-140312 202 21 days ago
0.28.0-preview-20250412-015004 323 2 months ago
0.28.0-preview-20250330-151243 300 2 months ago
0.27.0 1,770 2 months ago
0.27.0-preview-20250329-061056 128 2 months ago
0.27.0-preview-20250320-150236 169 3 months ago
0.26.0 779 3 months ago
0.26.0-preview-20250308-054159 233 3 months ago
0.26.0-preview-20250308-052015 238 3 months ago
0.26.0-preview-20250306-003649 243 3 months ago
0.26.0-preview-20250304-161120 336 3 months ago
0.26.0-preview-20250304-153109 303 3 months ago
0.26.0-preview-20250213-145629 335 4 months ago
0.26.0-preview-20250104-155937 368 5 months ago
0.25.0 3,007 6 months ago
0.25.0-preview-20241206-154703 307 6 months ago
0.25.0-preview-20241205-003755 137 6 months ago
0.25.0-preview-20241205-001213 105 6 months ago
0.24.0 1,650 6 months ago
0.24.0-preview-20241124-035720 190 6 months ago
0.24.0-preview-20241117-021926 281 7 months ago
0.24.0-preview-20241025-003522 450 7 months ago
0.24.0-preview-20241010-163230 256 8 months ago
0.24.0-preview-20241009-161812 330 8 months ago
0.24.0-preview-20241009-152619 192 8 months ago
0.24.0-preview-20241004-001036 356 8 months ago
0.24.0-preview-20241003-015422 260 8 months ago
0.24.0-preview-20241002-173926 225 8 months ago
0.24.0-preview-20240918-153023 332 9 months ago
0.24.0-preview-20240911-171636 237 9 months ago
0.23.0 3,815 9 months ago
0.23.0-preview-20240824-102835 214 9 months ago
0.23.0-preview-20240815-002214 360 10 months ago
0.22.0 2,056 7/10/2024
0.21.0 1,208 6/15/2024
0.20.0 599 6/6/2024
0.19.0 1,777 4/21/2024
0.18.1 2,553 3/2/2024
0.18.0 763 3/1/2024
0.17.0 1,128 2/6/2024
0.16.0 1,473 1/5/2024
0.15.0 1,530 11/23/2023
0.14.0 2,078 4/22/2023
0.13.0 1,988 3/16/2023
0.12.0 2,102 12/3/2022
0.11.0 1,989 11/22/2022
0.10.0 1,937 11/15/2022
0.9.0 1,926 11/9/2022
0.8.0 2,104 10/26/2022
0.7.0 2,211 7/17/2022
0.6.0 2,327 7/1/2022
0.5.0 2,248 6/26/2022
0.4.0 2,233 6/18/2022
0.3.0 2,694 6/5/2022
0.2.0 2,403 5/29/2022
0.1.1 4,818 5/4/2022
0.1.0 2,600 5/4/2022