Como referenciar System.Windows.Forms no .NET Core 3.0 para aplicativos WPF?

12

Estou migrando meu aplicativo de desktop WPF do .NET Framwork para o Core 3.0. Eu estava usando System.Windows.Forms.FolderBrowserDialog () e agora estou preso em como adicionar essa referência ao projeto Core. Não há nenhum pacote NuGet "System.Windows.Forms" disponível, existe? Existe alguma maneira alternativa de exibir o FolderBrowserDialog no Core?

Atualizar

Criei o projeto Core usando o modelo padrão e copiei os arquivos .cs e .xaml colados nele. O arquivo .csproj é assim:

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <UseWPF>true</UseWPF>
  </PropertyGroup>
yaugenka
fonte
A documentação diz que a classe está presente: docs.microsoft.com/pl-pl/dotnet/api/… - cole o arquivo csproj - talvez o TargetFramework esteja errado.
Hostel
Por favor, verifique a pergunta atualizada. Vi a página também, mas o compilador fornece o erro The type or namespace name 'Forms' does not exist in the namespace 'System.Windows'e nenhuma sugestão de importação de referência.
yaugenka

Respostas:

17

Você precisa adicionar ao switch adicional csproj:

<UseWindowsForms>true</UseWindowsForms>

Adicione-o abaixo UseWpf . Em seguida, tente reconstruir. Depois disso, você poderá usar o espaço de nome Forms.

Hostel
fonte
Funciona! Obrigado. A presença de ambos os switches influencia o desempenho de qualquer maneira? É apenas o FolderBrowserDialog que eu preciso nos Formulários.
yaugenka 13/11/19
Muito obrigado! Estava procurando uma solução para este problema. Ele funciona como um encanto!
Ratish 5/01
1

Parece que ele já existe: https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.folderbrowserdialog?view=netcore-3.0

Para outros problemas de portabilidade, convém usar o Pacote de Compatibilidade do Windows, usado para ajudar a portar aplicativos para o .NET Core

Também pode haver mais informações por aí relacionadas ao WPF e a esse problema, já que ele existe há algum tempo. Pode ser útil Caixa de diálogo Selecionar pasta WPF e atualizada para o .NET Core.

Boa sorte com sua atualização!

n234
fonte