Ookii-dialogs-wpf: Se necesita la versión preliminar de .Net Core 3.0

Creado en 26 jul. 2019  ·  10Comentarios  ·  Fuente: ookii-dialogs/ookii-dialogs-wpf

Se necesita la versión preliminar de .Net Core 3.0

enhancement help wanted

Comentario más útil

Un leve golpe, estamos migrando nuestros proyectos de WPF a .NET Core, sería genial si pudiéramos migrar las librerías de Ookii lo antes posible.

Todos 10 comentarios

Gracias @stricq.

La compatibilidad con .NET Core 3.0 es definitivamente un objetivo. Sin embargo, podría comenzar a trabajar en esto después de que se envíe RTM, así que si la versión previa al lanzamiento es algo que le importa, estaría feliz de obtener un PR.

¿Cuál es el estado actual sobre este tema?

Un leve golpe, estamos migrando nuestros proyectos de WPF a .NET Core, sería genial si pudiéramos migrar las librerías de Ookii lo antes posible.

Instalé la versión del marco existente en un proyecto Core 3.1 y tengo una advertencia del compilador sobre el paquete que se ha restaurado usando varias versiones del marco hasta 4.8 en lugar de Core 3.1 y que puede que no sea totalmente compatible con mi proyecto.
Sin embargo, parece compilarse y funcionar bien para el siguiente 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( );

¿Qué sucede si el código Ookii se pega en los archivos de un nuevo proyecto Core 3.1?
Sería bueno implementar la propiedad RootFolder en VistaFolderBrowserDialog.

El uso del ensamblado de .NET Framework en un proyecto de .NET Core tiene dos consecuencias:

  1. El proyecto solo se ejecutará en Windows. Dado que es un proyecto de WPF y la API subyacente que utiliza esta biblioteca solo está disponible en Windows, esto no es un problema;
  2. Si el ensamblado de .NET Framework usa alguna API que no existe en .NET Core, se lanzará una excepción en tiempo de ejecución. Como ya hemos estado usando esta biblioteca en nuestro proyecto .NET Core durante un tiempo y no se produjo ninguna de esas excepciones, supongo que esto tampoco es un problema.

Entonces, en general, si puede soportar la advertencia del compilador, parece bastante seguro usar esta biblioteca en un proyecto .NET Core. Sin embargo, todavía espero que podamos obtener la versión .NET Core.

TaskDialog no funciona en .NET Core 3.1. Pero VistaFolderBrowserDialog y ProgressDialog no tienen problema.

A continuación, la excepción lanzada desde TaskDialog.ShowDialog() .

System.EntryPointNotFoundException
No se puede encontrar un punto de entrada llamado "TaskDialogIndirect" en la DLL "comctl32.dll".

También probé el # 7 pero el mismo resultado.

El sistema operativo es Windows 10 1909.

Reproducir

  1. Cree un proyecto WPF (.NET Core) en Visual Studio 2019.
  2. Agregue el siguiente código al .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. Construya y ejecute.

@ haruby511 También tuve este problema. Pero solo necesita un poco de edición en su proyecto para que la biblioteca pueda acceder a TaskDialog .

  1. Agregue un manifiesto de aplicación.
  2. Abra el archivo de manifiesto. Verás este bit:
  <dependency>
    <dependentAssembly>
      <assemblyIdentity
          type="win32"
          name="Microsoft.Windows.Common-Controls"
          version="6.0.0.0"
          processorArchitecture="*"
          publicKeyToken="6595b64144ccf1df"
          language="*"
        />
    </dependentAssembly>
  </dependency>

Descomenta esto.

  1. Haga clic derecho en el proyecto y haga clic en propiedades.
  2. En la pestaña "Aplicación", seleccione el archivo de manifiesto de la lista.

Eso debería solucionar el problema.

GitHub cerró automáticamente este problema con la fusión de PR # 7, así que estoy reabriendo. Estoy pensando en lanzar un paquete de prelanzamiento durante el próximo fin de semana.

Ookii.Dialogs.Wpf 2.0.0-preview1 se ha publicado en nuget.org

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

Pruebe sus aplicaciones e informe cualquier problema que encuentre.


¡Gracias a @ acemod13 por hacer todo el trabajo!

Se ha publicado una versión estable con soporte para .NET 3.1 en nuget.org: Ookii.Dialogs.Wpf 2.0.0

Install-Package Ookii.Dialogs.Wpf -Version 2.0.0

NB: las aplicaciones de WPF en .NET Core 3.1 deben declarar un manifiesto de aplicación para poder usar Ookii Dialogs. El manifiesto se agregó automáticamente en las aplicaciones de .NET Framework, pero con .NET Core 3.1 este ya no es el caso, por lo que el desarrollador debe realizar un pequeño paso adicional. Más detalles sobre el archivo README de este repositorio.


¡Gracias nuevamente a @ acemod13 por la contribución!
/ cc @stricq @cheesi @lklauder @hillin @ haruby511 @vpenades @Agagamand @ NateTheGreat714 @andreasgrosche

¿Fue útil esta página
0 / 5 - 0 calificaciones