Ookii-dialogs-wpf: تحتاج. NET Core 3.0 الإصدار التجريبي

تم إنشاؤها على ٢٦ يوليو ٢٠١٩  ·  10تعليقات  ·  مصدر: ookii-dialogs/ookii-dialogs-wpf

تحتاج. NET Core 3.0 الإصدار التجريبي

enhancement help wanted

التعليق الأكثر فائدة

نتوء خفيف ، نقوم بترحيل مشاريع WPF الخاصة بنا إلى .NET Core ، سيكون من الرائع أن نتمكن من ترحيل Ookii libs في أسرع وقت ممكن.

ال 10 كومينتر

شكرا @ stricq.

دعم .NET Core 3.0 هو بالتأكيد هدف. قد أبدأ العمل على هذا بعد سفن RTM ، على الرغم من ذلك ، إذا كان الإصدار التجريبي أمرًا تهتم به ، فسأكون سعيدًا بالحصول على العلاقات العامة

ما هو الوضع الحالي في هذه القضية؟

نتوء خفيف ، نقوم بترحيل مشاريع WPF الخاصة بنا إلى .NET Core ، سيكون من الرائع أن نتمكن من ترحيل Ookii libs في أسرع وقت ممكن.

لقد قمت بتثبيت إصدار إطار العمل الحالي في مشروع Core 3.1 ولديّ تحذير مترجم حول استعادة الحزمة باستخدام إصدارات إطار عمل مختلفة حتى 4.8 بدلاً من Core 3.1 وأنها قد لا تكون متوافقة تمامًا مع مشروعي.
ومع ذلك ، يبدو أنه يجمع ويعمل بشكل جيد للاستخدام التالي:

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

ماذا يحدث إذا تم لصق كود Ookii في ملفات مشروع Core 3.1 جديد؟
سيكون من الجيد الحصول على خاصية RootFolder مطبقة في VistaFolderBrowserDialog.

استخدام تجميع .NET Framework في مشروع .NET Core له نتيجتان:

  1. سيتم تشغيل المشروع فقط على نظام Windows. نظرًا لأنه مشروع WPF و API الأساسي الذي تستخدمه هذه المكتبة متاحان فقط على Windows ، فهذا ليس مصدر قلق ؛
  2. إذا كان تجميع .NET Framework يستخدم بعض واجهات برمجة التطبيقات غير الموجودة في .NET Core ، فسيتم طرح استثناء وقت التشغيل. نظرًا لأننا استخدمنا هذه المكتبة بالفعل في مشروع .NET Core لفترة من الوقت ولم يحدث أي من هذه الاستثناءات ، أعتقد أن هذه ليست مشكلة أيضًا.

لذلك بشكل عام ، إذا كنت تستطيع تحمل تحذير المترجم ، يبدو من الآمن استخدام هذه المكتبة في مشروع .NET Core. ما زلت آمل أن نتمكن من الحصول على إصدار .NET Core بالرغم من ذلك.

TaskDialog لا يعمل في .NET Core 3.1. لكن VistaFolderBrowserDialog و ProgressDialog ليس لديهم مشكلة.

تم طرح استثناء أدناه من TaskDialog.ShowDialog() .

System.EntryPointNotFoundException
تعذر العثور على نقطة إدخال باسم "TaskDialogIndirect" في DLL "comctl32.dll".

لقد حاولت أيضًا رقم 7 ولكن نفس النتيجة.

نظام التشغيل هو Windows 10 1909.

إعادة إنتاج

  1. قم بإنشاء مشروع
  2. أضف الكود أدناه إلى .ctor of 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. بناء وتشغيل.

@ haruby511 لدي هذه المشكلة أيضًا. لكنه يحتاج فقط إلى القليل من التحرير في مشروعك حتى تتمكن المكتبة من الوصول إلى TaskDialog .

  1. أضف app.manifest.
  2. افتح ملف البيان. سترى هذا الجزء:
  <dependency>
    <dependentAssembly>
      <assemblyIdentity
          type="win32"
          name="Microsoft.Windows.Common-Controls"
          version="6.0.0.0"
          processorArchitecture="*"
          publicKeyToken="6595b64144ccf1df"
          language="*"
        />
    </dependentAssembly>
  </dependency>

ازل هذا التعليق.

  1. انقر بزر الماوس الأيمن فوق المشروع وانقر فوق خصائص.
  2. في علامة التبويب "التطبيق" ، اختر ملف البيان من القائمة.

يجب أن إصلاح المشكلة.

أغلق GitHub هذه المشكلة تلقائيًا بدمج PR # 7 ، لذا فأنا أعيد فتحه. أخطط لإصدار حزمة ما قبل الإصدار خلال عطلة نهاية الأسبوع القادمة.

تم نشر Ookii.Dialogs.Wpf 2.0.0-preview1 على nuget.org

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

يرجى اختبار التطبيقات الخاصة بك والإبلاغ عن أي مشاكل تجدها.


بفضل @ acemod13 للقيام بكل العمل!

تم نشر إصدار مستقر مع دعم .NET 3.1 على nuget.org: Ookii.Dialogs.Wpf 2.0.0

Install-Package Ookii.Dialogs.Wpf -Version 2.0.0

ملاحظة: تحتاج تطبيقات WPF الموجودة على .NET Core 3.1 إلى الإعلان عن بيان التطبيق من أجل استخدام Ookii Dialogs. تمت إضافة البيان تلقائيًا في تطبيقات .NET Framework ، ولكن مع .NET Core 3.1 لم يعد هذا هو الحال ، لذلك هناك خطوة إضافية صغيرة يتعين على المطور القيام بها. مزيد من التفاصيل حول README لهذا الريبو.


شكرًا مرة أخرى لـ @ acemod13 على المساهمة!
/ سم مكعبstricqcheesilklauderhillin @ haruby511vpenadesAgagamand @ NateTheGreat714andreasgrosche

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات