command-line-api
ILMerge
command-line-api | ILMerge | |
---|---|---|
22 | 7 | |
3,306 | 903 | |
0.7% | - | |
7.6 | 1.0 | |
5 days ago | almost 4 years ago | |
C# | C# | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
command-line-api
-
DotMake Command-Line VS command-line-api - a user suggested alternative
2 projects | 13 Dec 2023
System.CommandLine is a very good parser but you need a lot of boilerplate code to get going and the API is hard to discover.
-
How to configure true dependency injection in System.CommandLine
using System.CommandLine.Invocation; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; namespace System.CommandLine.Builder; internal static class DependencyInjectionMiddleware { public static CommandLineBuilder UseDependencyInjection(this CommandLineBuilder builder, Action configureServices) { return UseDependencyInjection(builder, (_, services) => configureServices(services)); } // This overload allows you to conditionally register services based on the command line invocation context // in order to improve startup time when you have a lot of services to register. public static CommandLineBuilder UseDependencyInjection(this CommandLineBuilder builder, Action configureServices) { return builder.AddMiddleware(async (context, next) => { // Register our services in the modern Microsoft dependency injection container var services = new ServiceCollection(); configureServices(context, services); var uniqueServiceTypes = new HashSet(services.Select(x => x.ServiceType)); services.TryAddSingleton(context.Console); await using var serviceProvider = services.BuildServiceProvider(); // System.CommandLine's service provider is a "fake" implementation that relies on a dictionary of factories, // but we can still make sure here that "true" dependency-injected services are available from "context.BindingContext". // https://github.com/dotnet/command-line-api/blob/2.0.0-beta4.22272.1/src/System.CommandLine/Invocation/ServiceProvider.cs context.BindingContext.AddService(_ => serviceProvider); foreach (var serviceType in uniqueServiceTypes) { context.BindingContext.AddService(serviceType, _ => serviceProvider.GetRequiredService(serviceType)); // Enable support for "context.BindingContext.GetServices<>()" as in the modern dependency injection var enumerableServiceType = typeof(IEnumerable<>).MakeGenericType(serviceType); context.BindingContext.AddService(enumerableServiceType, _ => serviceProvider.GetServices(serviceType)); } await next(context); }); } }
-
C# .NET Tools with System.CommandLine
command-line-api
-
Pro .NET Console Apps
I wouldn't go so far as to call it a dead duck. The project is being actively worked on. https://github.com/dotnet/command-line-api
-
Show HN: Replbuilder, quickly build a Python REPL CLI prompt
This looks really nice.
I've been spending a lot of time with python lately because of new project work, I had never really used python before. It's been really cool to keep finding stuff like this.
The equivalent of something like in the .net world (eg https://github.com/dotnet/command-line-api) and even powershell modules (https://learn.microsoft.com/en-us/powershell/module/microsof...) have a steeper learning curve and take significantly MORE work to set up for the end-user.
-
What is the best architecture for a Console app?
https://github.com/dotnet/command-line-api is a library that facilitates making commandline executables with nice arguments and options. It's a little complicated but if you're going to pack in a lot of functionality, you need something like this.
-
Thoughts on authoring cmdlets
if you're looking into command line utilities built in c#, you might want to check out System.CommandLine. You'll be able to build your comands in c#.
-
Fellow C# coders, I was randomly making a RANDOM script just for fun, when all of a sudden, an error popped up! For some reason, my program just can't detect a method called "Main" when it's right there! (Program does not contain a static "Main" method suitable for an entry point) Thank you!
What you're trying to do can be accomplished with something like System.CommandLine.DragonFruit. This basically lets you define a strongly typed Main method overload, and it handles converting the string[] for you
- Architecture pattern for Console Apps?
-
What's your favorite command line arg parser?
System.Commandline is my current favorite.
ILMerge
-
Could compiled code in dynamically linked libraries be statically baked into an executable?
You can do this with .NET: https://github.com/dotnet/ILMerge
-
How to build my console app as single .exe file?
Cause it's possible since .NET Core 3.0. For legacy projects i suggest use ILMerge static linker.
-
Amateur needing suggestions on the best environment / tool for this project
Are you sure all those files are necessary for running the .EXE? Perhaps after a compile, try copying just the .EXE from the release folder to somewhere else on your machine. You may find it runs just fine. If not, perhaps look at something like ILMerge for packaging it into a single .EXE
-
Assembly.Load alternative?
Combine applications by merging IL, not by storing it in resources. (il-merge, il-repack and unknown to me 'libz', or write your own merger using Mono.Cecil or dnLib)
-
Is there any internal command line parser in dotnet
Depending on which version of .NET you're building with, there are various tools to allow you to statically link all of your assemblies into one executable. Examples are ILMerge for .NET Framework and ILRepack for .NET Core.
-
Combining DLLs into one? Or embed as resource? VB.net
You can try ILMerge, which allows merging multiple assemblies into one.
-
Plug-in script - how to avoid assembly versioning mismatch?
I've had relatively good success using ILMerge to merge assemblies together to avoid these types of issues. I've had one project that had issues (the most complex one I worked on), but all the smaller ones have worked just fine. Just download it from NuGet, plus one of the NuGet packages that combine it into the build process (ILMerge.MSBuild.Task or MSBuild.ILMerge.Task) and it'll automatically merge your end result as part of the build process.
What are some alternatives?
spectre.console - A .NET library that makes it easier to create beautiful console applications.
ILRepack - Open-source alternative to ILMerge
Cocona - Micro-framework for .NET console application. Cocona makes it easy and fast to build console applications on .NET.
dnlib - Reads and writes .NET assemblies and modules
LibZ - LibZ, the alternative to ILMerge
Command Line Parser - The best C# command line parser that brings standardized *nix getopt style, for .NET. Includes F# support
Costura - Embed references as resources
CommandLineUtils - Command line parsing and utilities for .NET
propeller-vt100-terminal - ANSI / VT-100 Terminal emulator for Parallax Propeller microcontroller with VGA and USB support
runtimelab - This repo is for experimentation and exploring new ideas that may or may not make it into the main dotnet/runtime repo.
MonoGame - One framework for creating powerful cross-platform games.