Ookii-dialogs-wpf: Besoin de la version préliminaire de .Net Core 3.0

Créé le 26 juil. 2019  ·  10Commentaires  ·  Source: ookii-dialogs/ookii-dialogs-wpf

Besoin de la version préliminaire de .Net Core 3.0

enhancement help wanted

Commentaire le plus utile

Une légère bosse, nous migrons nos projets WPF vers .NET Core, ce serait formidable si nous pouvons migrer les bibliothèques Ookii dès que possible.

Tous les 10 commentaires

Merci @stricq.

La prise en charge de .NET Core 3.0 est définitivement un objectif. Je pourrais commencer à travailler dessus après la livraison de RTM, donc si la version préliminaire est quelque chose qui vous tient à cœur, je serais heureux d'obtenir un PR

Quel est l'état actuel de cette question?

Une légère bosse, nous migrons nos projets WPF vers .NET Core, ce serait formidable si nous pouvons migrer les bibliothèques Ookii dès que possible.

J'ai installé la version du framework existante dans un projet Core 3.1 et j'ai un avertissement du compilateur indiquant que le package a été restauré à l'aide de différentes versions de framework jusqu'à 4.8 plutôt que Core 3.1 et qu'il n'est peut-être pas entièrement compatible avec mon projet.
Cependant, il semble compiler et fonctionner correctement pour l'utilisation suivante:

     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( );

Que se passe-t-il si le code Ookii est collé dans les fichiers d'un nouveau projet Core 3.1?
Ce serait bien d'implémenter la propriété RootFolder dans VistaFolderBrowserDialog.

L'utilisation de l'assembly .NET Framework dans un projet .NET Core a deux conséquences:

  1. Le projet ne fonctionnera que sous Windows. Comme il s'agit d'un projet WPF et que l'API sous-jacente utilisée par cette bibliothèque n'est disponible que sur Windows, ce n'est pas un problème;
  2. Si l'assembly .NET Framework utilise une API qui n'existe pas dans .NET Core, une exception d'exécution sera levée. Comme nous utilisons déjà cette bibliothèque dans notre projet .NET Core depuis un certain temps et qu'aucune de ces exceptions ne s'est produite, je suppose que ce n'est pas non plus un problème.

Donc, en général, si vous pouvez supporter l'avertissement du compilateur, il semble assez sûr d'utiliser cette bibliothèque dans un projet .NET Core. J'espère toujours que nous pourrons obtenir la version .NET Core.

Le TaskDialog ne fonctionne pas dans .NET Core 3.1. Mais VistaFolderBrowserDialog et ProgressDialog n'ont pas de problème.

Sous l'exception lancée à partir de TaskDialog.ShowDialog() .

System.EntryPointNotFoundException
Impossible de trouver un point d'entrée nommé «TaskDialogIndirect» dans la DLL «comctl32.dll».

J'ai aussi essayé le n ° 7 mais le même résultat.

Le système d'exploitation est Windows 10 1909.

Reproduire

  1. Créez un projet WPF (.NET Core) dans Visual Studio 2019.
  2. Ajoutez ci-dessous le code au .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. Construisez et exécutez.

@ haruby511 J'ai également eu ce problème. Mais il suffit d'un peu d'édition dans votre projet pour que la bibliothèque puisse accéder au TaskDialog .

  1. Ajoutez un fichier app.manifest.
  2. Ouvrez le fichier manifeste. Vous verrez ce bit:
  <dependency>
    <dependentAssembly>
      <assemblyIdentity
          type="win32"
          name="Microsoft.Windows.Common-Controls"
          version="6.0.0.0"
          processorArchitecture="*"
          publicKeyToken="6595b64144ccf1df"
          language="*"
        />
    </dependentAssembly>
  </dependency>

Décommentez ceci.

  1. Cliquez avec le bouton droit sur le projet et cliquez sur Propriétés.
  2. Dans l'onglet "Application", choisissez le fichier manifeste dans la liste.

Cela devrait résoudre le problème.

GitHub a automatiquement fermé ce problème avec la fusion de PR # 7, donc je rouvre. Je prévois de publier une pré-version le week-end prochain.

Ookii.Dialogs.Wpf 2.0.0-preview1 a été publié sur nuget.org

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

Veuillez tester vos applications et signaler les problèmes que vous rencontrez.


Merci à @ acemod13 pour tout le travail!

Une version stable avec prise en charge de .NET 3.1 a été publiée sur nuget.org: Ookii.Dialogs.Wpf 2.0.0

Install-Package Ookii.Dialogs.Wpf -Version 2.0.0

NB: les applications WPF sur .NET Core 3.1 doivent déclarer un manifeste d'application pour pouvoir utiliser les dialogues Ookii. Le manifeste a été ajouté automatiquement dans les applications .NET Framework, mais avec .NET Core 3.1 ce n'est plus le cas, il y a donc une petite étape supplémentaire que le développeur doit faire. Plus de détails sur le README de ce repo.


Merci encore à @ acemod13 pour la contribution!
/ cc @stricq @cheesi @lklauder @hillin @ haruby511 @vpenades @Agagamand @ NateTheGreat714 @andreasgrosche

Cette page vous a été utile?
0 / 5 - 0 notes