Dodanie interfejsu okienkowego do aplikacji konsolowej

0

Mam pewien projekt w .NET Framework 4.8, który jest hybrydą aplikacji konsolowej i desktopowej używającej WinForms. W zależności od parametru polecenia lub opcji w pliku konfiguracyjnym, albo pracuje w konsoli, albo uruchamia okienko, które reaguje na naciskane klawisze użytkownika.

Najpierw zacząłem pracę na Windows, w programie SharpDevelop, później na Linux rozwijałem za pomocą MonoDevelop. Aplikacja działa zgodnie z oczekiwaniem na Linux poprzez mono i na Windows poprzez .NET. Formularz nie był w ogóle robiony za pomocą narzędzi do robienia formatki, tylko jego tworzenie, dodanie kontrolek i zdarzeń było pisane z palca.

Chciałbym tą aplikację przerobić na .NET 6.0. Zainstalowałem na Linux Visual Studio Code, skonfigurowałem i utworzyłem "Hello world" na podstawie tego nagrania.

Próbuję dodać pakiety w ten sposób:

dotnet add package System.Windows.Forms
dotnet add package System.Drawing

Pokazuje taki błąd:

  Trwa określanie projektów do przywrócenia...
  Writing /tmp/tmps3xgk2.tmp
info : X.509 certificate chain validation will use the fallback certificate bundle at '/usr/share/dotnet/sdk/6.0.403/trustedroots/codesignctl.pem'.
info : Dodawanie elementu PackageReference dla pakietu „System.Windows.Forms” do projektu „/media/xxx/WORK1/__ToBackup/Develop/Csharp/VSC/HelloWorld/HelloWorld2/HelloWorld2.csproj”.
info :   CACHE https://api.nuget.org/v3/registration5-gz-semver2/system.windows.forms/index.json
info :   CACHE https://api.nuget.org/v3/registration5-gz-semver2/system.windows.forms/index.json
error: Brak dostępnych wersji pakietu „System.Windows.Forms”.

Jak spróbuję dodac pakiet w ten sposób, to też się nie udaje, pokazuje, że nie ma takiego projektu i katalogu:

dotnet add HelloWorld2.csproj reference System.Windows.Forms

W jaki sposób można dodać pakiet System.Drawing (potrzebny do malowania na bitmapie) i pakiet System.Windows.Forms potrzebny do wyświetlenia okna z bitmapą?

0

Czemu nie zrobić od razu dotnet new winforms? 🤔

3

Od kiedy aplikacje Windows Forms napisane w .NET 6 działają na Linuxie?

0
markone_dev napisał(a):

Od kiedy aplikacje Windows Forms napisane w .NET 6 działają na Linuxie?

Jak nie Windows Forms, to jaki typ projektu będzie odpowiedni do apki z okienkami i widgetami, która ma działać i na Windows i na Linux?

Jak dodać System.Drawing, aby móc mieć obiekty typu Bitmap i Graphics?

0
andrzejlisek napisał(a):

Jak dodać System.Drawing, aby móc mieć obiekty typu Bitmap i Graphics?

Tak sam jak Windows Forms, czyli migruj na coś innego https://learn.microsoft.com/en-us/dotnet/core/compatibility/core-libraries/6.0/system-drawing-common-windows-only

A okienka np. https://github.com/AvaloniaUI/Avalonia chyba @Ktos wie więcej na ten temat.

0
andrzejlisek napisał(a):

Jak nie Windows Forms, to jaki typ projektu będzie odpowiedni do apki z okienkami i widgetami, która ma działać i na Windows i na Linux?

Jak chcesz trzymać się dotneta to nowych rzeczy MAUI a z dotychczasowych frameworków to MONO

0

Co jeszcze muszę doinstalować lub ustawić w Visual Studio Code, żeby mieć możliwość tworzenia i konfiguracji projektów? Teraz, to mam możliwość tylko edycji tekstu z Intelisense i uruchomienia, nic więcej. Całą resztę, czyli nowy projekt, dołączanie referencji, instalowanie pakietów z NuGet, uruchamianie w trybie debug i release, kompilacja do opublikowania, to muszę znać wszystkie parametry polecenia dotnet i ręcznie pisać w konsoli.

1
markone_dev napisał(a):

a z dotychczasowych frameworków to MONO

Widzę, że MONO jest wciąż rozwijane (najnowsza wersja jest z czerwca tego roku), więc przy większym istniejącym projekcie w .NET/Mono chyba przy tym pozostanę. Myślałem, ze przeróbka na .NET Core lub najnowszy .NET Framework uda się bez problemu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1