dotnet-execute 0.27.0

There is a newer prerelease version of this package available.
See the version list below for details.
dotnet tool install --global dotnet-execute --version 0.27.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.27.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=dotnet-execute&version=0.27.0
                    
nuke :add-package dotnet-execute --version 0.27.0
                    

dotnet-exec

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

default

Docker Pulls

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
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

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-preview-20250516-140312 168 4 days ago
0.28.0-preview-20250412-015004 321 a month ago
0.28.0-preview-20250330-151243 298 2 months ago
0.27.0 1,722 2 months ago
0.27.0-preview-20250329-061056 126 2 months ago
0.27.0-preview-20250320-150236 167 2 months ago
0.26.0 774 2 months ago
0.26.0-preview-20250308-054159 231 2 months ago
0.26.0-preview-20250308-052015 236 2 months ago
0.26.0-preview-20250306-003649 241 2 months ago
0.26.0-preview-20250304-161120 334 3 months ago
0.26.0-preview-20250304-153109 301 3 months ago
0.26.0-preview-20250213-145629 332 3 months ago
0.26.0-preview-20250104-155937 366 5 months ago
0.25.0 3,003 5 months ago
0.25.0-preview-20241206-154703 304 5 months ago
0.25.0-preview-20241205-003755 135 6 months ago
0.25.0-preview-20241205-001213 102 6 months ago
0.24.0 1,647 6 months ago
0.24.0-preview-20241124-035720 188 6 months ago
0.24.0-preview-20241117-021926 279 6 months ago
0.24.0-preview-20241025-003522 447 7 months ago
0.24.0-preview-20241010-163230 249 7 months ago
0.24.0-preview-20241009-161812 324 7 months ago
0.24.0-preview-20241009-152619 188 7 months ago
0.24.0-preview-20241004-001036 353 8 months ago
0.24.0-preview-20241003-015422 257 8 months ago
0.24.0-preview-20241002-173926 219 8 months ago
0.24.0-preview-20240918-153023 330 8 months ago
0.24.0-preview-20240911-171636 235 8 months ago
0.23.0 3,812 9 months ago
0.23.0-preview-20240824-102835 212 9 months ago
0.23.0-preview-20240815-002214 358 9 months ago
0.22.0 2,053 7/10/2024
0.21.0 1,205 6/15/2024
0.20.0 595 6/6/2024
0.19.0 1,773 4/21/2024
0.18.1 2,549 3/2/2024
0.18.0 758 3/1/2024
0.17.0 1,124 2/6/2024
0.16.0 1,466 1/5/2024
0.15.0 1,527 11/23/2023
0.14.0 2,073 4/22/2023
0.13.0 1,985 3/16/2023
0.12.0 2,099 12/3/2022
0.11.0 1,984 11/22/2022
0.10.0 1,934 11/15/2022
0.9.0 1,921 11/9/2022
0.8.0 2,100 10/26/2022
0.7.0 2,207 7/17/2022
0.6.0 2,323 7/1/2022
0.5.0 2,244 6/26/2022
0.4.0 2,229 6/18/2022
0.3.0 2,690 6/5/2022
0.2.0 2,399 5/29/2022
0.1.1 4,812 5/4/2022
0.1.0 2,595 5/4/2022