Ookii-dialogs-wpf: Necessita da versão de pré-lançamento do .Net Core 3.0

Criado em 26 jul. 2019  ·  10Comentários  ·  Fonte: ookii-dialogs/ookii-dialogs-wpf

Necessita da versão de pré-lançamento do .Net Core 3.0

enhancement help wanted

Comentários muito úteis

Um choque leve, estamos migrando nossos projetos WPF para .NET Core, seria ótimo se pudéssemos migrar as bibliotecas Ookii o mais rápido possível.

Todos 10 comentários

Obrigado @stricq.

O suporte do .NET Core 3.0 é definitivamente um objetivo. Posso começar a trabalhar nisso após o lançamento do RTM, então, se a versão de pré-lançamento for algo de que você se preocupa, ficaria feliz em obter um PR

Qual é o estado atual desse problema?

Um choque leve, estamos migrando nossos projetos WPF para .NET Core, seria ótimo se pudéssemos migrar as bibliotecas Ookii o mais rápido possível.

Instalei a versão existente do framework em um projeto Core 3.1 e tenho um aviso do compilador sobre o pacote ter sido restaurado usando várias versões do framework até 4.8 em vez do Core 3.1 e que pode não ser totalmente compatível com o meu projeto.
No entanto, parece compilar e funcionar bem para o seguinte uso:

     var dialog = new Ookii.Dialogs.Wpf.VistaFolderBrowserDialog( );
     dialog.Description = "choose folder in which to store scripts for this project";
     dialog.RootFolder = Environment.SpecialFolder.MyComputer;  // not implemented
     dialog.ShowNewFolderButton = true;
     dialog.UseDescriptionForTitle = true;

     bool result = dialog.ShowDialog( this ).GetValueOrDefault( );

O que acontece se o código Ookii for colado nos arquivos de um novo projeto Core 3.1?
Seria bom implementar a propriedade RootFolder em VistaFolderBrowserDialog.

Usar o assembly .NET Framework em um projeto .NET Core tem duas consequências:

  1. O projeto será executado apenas no Windows. Como é um projeto WPF e a API subjacente que essa biblioteca usa estão disponíveis apenas no Windows, isso não é uma preocupação;
  2. Se o assembly do .NET Framework usar alguma API que não existe no .NET Core, uma exceção de tempo de execução será lançada. Como já usamos essa biblioteca em nosso projeto .NET Core há algum tempo e nenhuma dessas exceções ocorreu, acho que isso também não é um problema.

Portanto, em geral, se você aguentar o aviso do compilador, parece bastante seguro usar essa biblioteca em um projeto .NET Core. Ainda espero que possamos obter a versão do .NET Core.

O TaskDialog não está funcionando no .NET Core 3.1. Mas VistaFolderBrowserDialog e ProgressDialog não têm problema.

Abaixo da exceção lançada de TaskDialog.ShowDialog() .

System.EntryPointNotFoundException
Não foi possível encontrar um ponto de entrada denominado 'TaskDialogIndirect' na DLL 'comctl32.dll'.

Eu também tentei # 7, mas o mesmo resultado.

O sistema operacional é o Windows 10 1909.

Reproduzir

  1. Crie um projeto WPF (.NET Core) no Visual Studio 2019.
  2. Adicione o código abaixo a .ctor de MainWindow .
    csharp TaskDialog taskDialog = new TaskDialog() { WindowTitle = "Title", MainIcon = TaskDialogIcon.Information, MainInstruction = "test", Content = "TEST", ExpandedInformation = "detail" }; taskDialog.Buttons.Add(new TaskDialogButton(ButtonType.Ok)); taskDialog.ShowDialog();
  3. Construir e executar.

@ haruby511 Eu também tive esse problema. Mas só precisa de um pouco de edição em seu projeto para que a biblioteca possa acessar o TaskDialog .

  1. Adicione um app.manifest.
  2. Abra o arquivo de manifesto. Você verá esta parte:
  <dependency>
    <dependentAssembly>
      <assemblyIdentity
          type="win32"
          name="Microsoft.Windows.Common-Controls"
          version="6.0.0.0"
          processorArchitecture="*"
          publicKeyToken="6595b64144ccf1df"
          language="*"
        />
    </dependentAssembly>
  </dependency>

Remova o comentário.

  1. Clique com o botão direito no projeto e clique em propriedades.
  2. Na guia "Aplicativo", escolha o arquivo de manifesto da lista.

Isso deve resolver o problema.

O GitHub fechou automaticamente esse problema com a fusão do PR # 7, então estou reabrindo. Estou planejando lançar um pacote de pré-lançamento no próximo fim de semana.

Ookii.Dialogs.Wpf 2.0.0-preview1 foi publicado em nuget.org

Install-Package Ookii.Dialogs.Wpf -Version 2.0.0-preview1

Teste seus aplicativos e relate quaisquer problemas que encontrar.


Obrigado a @ acemod13 por fazer todo o trabalho!

A versão estável com suporte .NET 3.1 foi publicada em nuget.org: Ookii.Dialogs.Wpf 2.0.0

Install-Package Ookii.Dialogs.Wpf -Version 2.0.0

NB: os aplicativos WPF no .NET Core 3.1 precisam declarar um manifesto do aplicativo para usar o Ookii Dialogs. O manifesto foi adicionado automaticamente em aplicativos .NET Framework, mas com .NET Core 3.1 esse não é mais o caso, então há uma pequena etapa extra que o desenvolvedor precisa fazer. Mais detalhes no README deste repo.


Obrigado novamente a @ acemod13 pela contribuição!
/ cc @stricq @cheesi @lklauder @hillin @ haruby511 @vpenades @Agagamand @ NateTheGreat714 @andreasgrosche

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

mu88 picture mu88  ·  9Comentários

soulflyman picture soulflyman  ·  9Comentários

mgpreston picture mgpreston  ·  4Comentários

vpenades picture vpenades  ·  4Comentários

matelich picture matelich  ·  3Comentários