dotnet / dotnet/command-line-api

HelpBuilder failing on windows nanoserver

Aperta
#690 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
waiting-on-feedback
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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.