Se necesita la versión preliminar de .Net Core 3.0
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:
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.
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();
@ 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
.
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
Descomenta esto.
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
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.