Jak odwoływać się do System.Windows.Forms w .NET Core 3.0 dla aplikacji WPF?

12

Przeprowadzam migrację aplikacji komputerowej WPF z .NET Framwork do Core 3.0. Korzystałem z System.Windows.Forms.FolderBrowserDialog () i teraz utknąłem, jak dodać to odniesienie do projektu Core. Nie ma dostępnego pakietu NuGet „System.Windows.Forms”, prawda? Czy jest jakiś alternatywny sposób wyświetlania FolderBrowserDialog w rdzeniu?

Aktualizacja

Utworzyłem projekt Core przy użyciu domyślnego szablonu, a następnie skopiowałem do niego wklejone pliki .cs i .xaml. Plik .csproj wygląda następująco:

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <UseWPF>true</UseWPF>
  </PropertyGroup>
Yaugenka
źródło
Dokumentacja mówi, że klasa jest obecna: docs.microsoft.com/pl-pl/dotnet/api/… - wklej plik csproj - może TargetFramework jest nieprawidłowy.
Hostel
Sprawdź zaktualizowane pytanie. Widziałem też stronę, ale kompilator podaje błąd The type or namespace name 'Forms' does not exist in the namespace 'System.Windows'i nie sugeruje importu referencji.
yaugenka

Odpowiedzi:

17

Musisz dodać do csproj dodatkowy przełącznik:

<UseWindowsForms>true</UseWindowsForms>

Dodaj go poniżej UseWpf . Następnie spróbuj odbudować. Po tym powinieneś być w stanie korzystać z przestrzeni nazw Forms.

Schronisko
źródło
To działa! Dziękuję Ci. Czy obecność obu przełączników w jakikolwiek sposób wpływa na wydajność? Potrzebuję tylko folderu FolderBrowserDialog z formularzy.
yaugenka
Wielkie dzięki! Szukałem rozwiązania tego problemu. To działa jak urok!
Ratish
1

Wygląda na to, że już istnieje: https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.folderbrowserdialog?view=netcore-3.0

W przypadku innych problemów z portowaniem możesz skorzystać z pakietu zgodności z systemem Windows, który jest używany do pomocy w przenoszeniu aplikacji do platformy .NET Core

Może być też trochę więcej informacji związanych z WPF i tym problemem, ponieważ istnieje on już od jakiegoś czasu. Może to być pomocne Okno dialogowe Wybierz folder WPF i zaktualizowane do wersji .NET Core.

Powodzenia w aktualizacji!

n234
źródło