Как ссылаться на System.Windows.Forms в .NET Core 3.0 для приложений WPF?

12

Я перевожу свое настольное приложение WPF из .NET Framwork в Core 3.0. Я использовал System.Windows.Forms.FolderBrowserDialog () и теперь застрял на том, как добавить эту ссылку в основной проект. Пакет NuGet "System.Windows.Forms" недоступен, не так ли? Есть ли альтернативный способ отображения FolderBrowserDialog в ядре?

Обновить

Я создал проект Core, используя шаблон по умолчанию, а затем скопировал в него вставленные файлы .cs и .xaml. Файл .csproj выглядит следующим образом:

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <UseWPF>true</UseWPF>
  </PropertyGroup>
yaugenka
источник
Документация говорит, что класс присутствует: docs.microsoft.com/pl-pl/dotnet/api/… - пожалуйста, вставьте файл csproj - возможно, TargetFramework неверен.
Хостел
Пожалуйста, проверьте обновленный вопрос. Я тоже видел страницу, но компилятор выдает ошибку The type or namespace name 'Forms' does not exist in the namespace 'System.Windows'и не предлагает рекомендаций по импорту.
яугенка

Ответы:

17

Вам необходимо добавить в csproj дополнительный переключатель:

<UseWindowsForms>true</UseWindowsForms>

Добавьте его ниже UseWpf . Затем попробуйте восстановить. После этого вы сможете использовать пространство имен Forms.

Общежитие
источник
Оно работает! Спасибо. Влияет ли присутствие обоих коммутаторов на производительность? Мне нужен только FolderBrowserDialog из форм.
яугенка
Большое спасибо! Искал решение этой проблемы. Работает как часы!
Ратиш
1

Похоже, он уже существует: https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.folderbrowserdialog?view=netcore-3.0

Для других проблем портирования вы можете использовать пакет совместимости Windows, который используется для портирования приложений на .NET Core.

Там также может быть немного больше информации, связанной с WPF и этой проблемой, так как она была вокруг некоторое время. Это может быть полезно для выбора папки диалогового окна WPF и обновлено для .NET Core.

Удачи в обновлении!

N234
источник