dotnet / dotnet/command-line-api
HelpBuilder failing on windows nanoserver
- Lingua principale
- C#
- Stelle
- 3.7k
- Fork
- 428
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
Creating a `HelpBuilder` instance in windows nanoserver containers will invariably result in unhandled exceptions. For example, if I try to run a console app in a container deriving from `mcr.microsoft.com/dotnet/core/sdk:3.0.100-nanoserver-1809`, I will get the following exception:
```
Unhandled exception. System.IO.IOException: The handle is invalid.
at System.ConsolePal.GetBufferInfo(Boolean throwOnNoConsole, Boolean& succeeded)
at System.ConsolePal.get_WindowWidth()
at System.Console.get_WindowWidth()
at System.CommandLine.HelpBuilder..ctor(IConsole console, Nullable`1 columnGutter, Nullable`1 indentationSize, Nullable`1 maxWidth)
```
Related to https://github.com/dotnet/corefx/issues/7858. As this is an OS issue, it seems that the best course of action is for System.CommandLine to anticipate the exception and assume a default width (e.g. 80 characters).
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia riproducendo il problema in un container Windows nanoserver usando un’applicazione console che crea un HelpBuilder, quindi esamina il costruttore di HelpBuilder e la chiamata a System.Console.WindowWidth mostrata nello stack trace. Il lavoro è completato quando HelpBuilder non genera più una IOException non gestita in quel punto e usa una larghezza predefinita, ad esempio 80 caratteri.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- csharp
- Ambito
- cli
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100