Dodanie interfejsu okienkowego do aplikacji konsolowej

Dodanie interfejsu okienkowego do aplikacji konsolowej
AN
  • Rejestracja: dni
  • Ostatnio: dni
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:

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

Pokazuje taki błąd:

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

Kopiuj
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ą?

AdamWox
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Jastrzębie-Zdrój
  • Postów: 2180
0

Czemu nie zrobić od razu dotnet new winforms? 🤔

markone_dev
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 833
3

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

AN
  • Rejestracja: dni
  • Ostatnio: dni
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?

SA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1452
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.

markone_dev
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 833
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

AN
  • Rejestracja: dni
  • Ostatnio: dni
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.

AN
  • Rejestracja: dni
  • Ostatnio: dni
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.