نشر الحزم باستخدام Dynamics CRM Package Deployer وWindows PowerShell

يمكّن Microsoft Dynamics CRM Package Deployer المسؤولين من توزيع الحزم على مثيل Dynamics 365 (محلي) أو Microsoft Dynamics 365 (على الإنترنت). يمكن أن تتكون "المجموعة" من أي من أو كل الإجراءات التالية:

  • ملف حلول Dynamics 365 واحدًا أو أكثر.

  • ملفات ثابتة أو ملفات بيانات تم تصديرها من أداة Configuration Migration. لمزيد من المعلومات حول أداة Configuration Migration، راجع إدارة بيانات التكوين.

  • يتم نشر التعليمات البرمجية المخصصة التي يمكن تشغيلها أثناء أو بعد الحزمة إلى Microsoft Dynamics 365.

  • محتوى HTML المحدد للحزمة والذي يمكن عرضه في بداية ونهاية عملية نشر الحزمة. قد يكون ذلك الأمر مفيداً لتوفير وصف للحلول والملفات التي يتم نشرها في الحزمة.

    يقوم المطورون بإنشاء الحزم باستخدام قالب نشر الحزمة في Visual Studio. مزيد من المعلومات: MSDN: إنشاء الحزم لأداة CRM Package Deployer

    بعد إنشاء حزمة، يمكنك نشرها إما عن طريق تشغيل CRM Package Deployer أو باستخدام Windows PowerShell cmdlets للأداة.

هام

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

احرص دائمًا على عمل نسخة احتياطية لمؤسسة الإنتاج قبل نشر حزمة.


نشر الحزم باستخدام Package Deployer

يمكنك استخدام أداة Package Deployer (packagedeployer.exe) لنشر الحزم بالطرق التالية.

استخدام CRM Package Deployer لنشر الحزم

استخدام الأداة CRM Package Deployer في سطر الأوامر

استخدام الأداة Package Deployer لنشر الحزم

باستطاعة الأداة Package Deployer معالجة حزمة واحدة فقط في كل مرة. ومع ذلك، فهي توفر للمستخدمين القدرة على تحديد حزمة لنشرها من بين حزم متعددة متاحة في دليل أداة Package Deployer. وتختلف بعض الشاشات والإجراءات في الأداة استناداً إلى تعريف الحزمة. لست بحاجة إلى تثبيت الأداة Package Deployer. فقط قم بتنزيلها وتشغيلها.

  1. قم بالحصول على الحزمة لنشرها. الحزمة عبارة عن مجموعة من الملفات والمجلدات التي تم إنشاؤها في مجلد مشروع Visual studio (<Project>\Bin\Debug) عند بناء مشروع حزمة في Visual Studio. انسخ ما يلي من مجلد تصحيح المشروع الخاص بك:

    • <مجلد PackageName>: يحتوي هذا المجلد على الحلول وتكوين الاستيراد ومحتويات الحزمة.

    • <PackageName>.dll: يحتوي التجميع على التعليمات البرمجية للحزمة. يكون اسم التجميع بشكل افتراضي هو نفس اسم مشروع Visual Studio الخاص بك.

      للحصول على معلومات مفصلة حول إنشاء حزمة باستخدام Visual Studio، راجع MSDN: إنشاء حزمة لأداة Package Deployer.

      بالنسبة لهذا الموضوع، لنفترض أنه يتم نسخ مجلد الحزمة والتجميع من مجلد تصحيح المشروع Visual Studio (<Project>\Bin\Debug) إلى مجلد c:\DeployPackage.

  2. تنزيل Microsoft Dynamics CRM SDK ثم قم بتشغيل الملف القابل للتنفيذ الذي تم تنزيله لاستخراج محتويات الحزمة..

  3. استعرض إلى المجلد SDK\Tools\PackageDeployer وانسخ مجلد الحزمة والتجميع من c:\DeployPackage إلى المجلد SDK\Tools\PackageDeployer.

  4. وبعد نسخ الملفات، قم بتشغيل الأداة من خلال النقر بشكل مزدوج فوق ملف PackageDeployer.exe في المجلد SDK\Tools\PackageDeployer.

  5. انقر فوق متابعة في الشاشة الرئيسية للأداة.

  6. في الشاشة اتصال بـ Microsoft Dynamics 365 قم بتوفير تفاصيل المصادقة للتوصيل بخادم Dynamics 365 الخاص بك حيث تريد توزيع الحزمة. إذا كان لديك مؤسسات متعددة، وترغب في تحديد المؤسسة حيث تريد نشر الحزمة، فحدد خانة الاختيار عرض قائمة المؤسسات المتوفرة دائمًا. انقر فوق تسجيل الدخول.

  7. إذا كان لديك مؤسسات متعددة على خادم Dynamics 365 الخاص بك، فحدد مؤسسة Dynamics 365 للاتصال بها.

  8. حدد الحزمة لنشرها، انقر فوق التالي.

    تحديد الحزمة في أداة Package Deployer

  9. واتبع الإرشادات على الشاشات اللاحقة لإكمال نشر الحزمة الخاصة بك.

    وتظهر الشاشات استناداً إلى تعريف الحزمة المحددة للنشر. فيما يتعلق بالنشر المتكامل للحزمة التي تستخدم أداة Package Deployer، راجع الموضوع الخاص بنشر حزم Unified Service Desk: نشر عينة تطبيقات Unified Service Desk إلى CRM Server باستخدام Package Deployer‬

استخدام الأداة Package Deployer في سطر الأوامر

باستطاعة المسؤولين عن النظام والمخصصين تمرير المعلمات، مثل تعليمة برمجية لغة إقليمية، إلى packagedeployer.exe من سطر الأوامر. لا يمكن تكوين هذه المعلمات إلا بتشغيل الأداة Package Deployer في سطر الأوامر.

ملاحظة

تم تقديم هذه الميزة للمرة الأولى في التحديث رقم 0.1 لعام 2016 لـ Dynamics CRM Online.

يتضمن هذا الجدول المعلمات المتوفرة.

المعلمة‬ الوصف القيمة الافتراضية
RuntimePackageSettings ترشد packagedeployer.exe إلى قبول معلمات سطر الأوامر مثل LCID وSkipChecks. غير قابل للتطبيق
LCID=localeID تعيّن معرف الإعدادات المحلية، مثل 1033 للغة الإنجليزية-الولايات المتحدة أو 1036 للغة الفرنسية-فرنسا من معرفات الإعدادات المحلية المتوفرة في الحزمة. إذا لم يتم تحديدها، فيتم استخدام اللغة الافتراضية. استخدام اللغة الافتراضية
SkipChecks=true/false استخدام هذه المعلمة فقط عندما لا تتضمن البيئة المستهدفة أية حلول أو تخصيصات أخرى. عند تعيين هذه المعلمة إلى true، سيتجاوز استيراد الحل بعض اختبارات السلامة، مما يؤدي إلى تحسين أداء الاستيراد. خطأ

المثال التالي يرشد CRM Package Deployer لتجاوز بعض اختبارات السلامة ويقوم بتعيين لغة الاستيراد إلى اللغة البولندية.

packagedeployer.exe RuntimePackageSettings SkipChecks=true | lcid=1045  

ملاحظة

استخدم حرف التوجيه | لفصل المعلمات عند تشغيل packagedeployer.exe في سطر الأوامر باستخدام عدة معلمات.

لمزيد من المعلومات حول المعلمات والقيم التي يمكن تمريرها إلى packagedeployer.exe، راجع MSDN: إنشاء حزم لأداة CRM Package Deployer.

استخدام Windows PowerShell لنشر الحزم

توفر أيضًا الأداة Package Deployer دعم Windows PowerShell لنشر الحزم.

قم بتنفيذ الخطوات التالية لاستخدام PowerShell cmdlets لنشر الحزم:

المتطلبات المسبقة

تسجيل أوامر cmdlets

استخدام cmdlet لاسترداد الحزم

استخدام cmdlet للاتصال بخادم Dynamics 365 الخاص بك

استخدام cmdlet لنشر الحزم

الحصول على تعليمات مفصلة حول cmdlets

المتطلبات المسبقة

فيما يلي المتطلبات الأساسية لاستخدام PowerShell cmdlet:

  • ويتطلب الحصول على إصدار 3.0 أو أحدث من PowerShell لنشر الحزمة باستخدام PowerShell. للتحقق من إصدار PowerShell، قم بتشغيل نافذة PowerShell ، ومن ثم تشغيل الأمر التالي: $Host.

  • قم بتعيين نهج التنفيذ لتشغيل البرامج النصية لـ PowerShell المسجَّلة. للقيام بذلك، قم بتشغيل النافذة‬ PowerShell كمسؤول، ثم قم بتشغيل الأمر التالي: Set-ExecutionPolicy -ExecutionPolicy AllSigned

تسجيل أوامر cmdlets

يجب عليك تسجيل Windows PowerShell cmdlets للأداة Package Deployer قبل أن تتمكن من استخدامها. لتسجيل أوامر cmdlets:

  1. إذا لم تكن قد فعلت ذلك بالفعل، قم بتنزيل حزمة Dynamics 365 SDKمن مركز التنزيل لـ Microsoft، وتشغيل ملف الحزمة لاستخراج محتويات الحزمة. لنفترض أنك قمت باستخراج الحزمة إلى المجلد c:\CRM على الكمبيوتر الخاص بك. تصبح ملفات الأداة Package Deployer والملفات المطلوبة الأخرى متاحة في الموقع التالي: c:\CRM\SDK\Tools\PackageDeployer.

  2. قم ببدء تشغيل Windows PowerShell على جهاز الكمبيوتر الخاص بك مع الامتيازات العالية (تشغيل كمسؤول).

  3. في الموجه في النافذة Windows PowerShell، قم بتغيير الدليل إلى المجلد Windows PowerShell ضمن المجلد PackageDeployer. وفي هذه الحالة:

    cd c:\CRM\SDK\Tools\PackageDeployer\PowerShell  
    
  4. شغّل البرنامج النصي RegisterXRMTooling.ps1 لتسجيل تجميع Package Deployer Windows PowerShell (dll)، وثبّت الأداة الإضافية Windows PowerShell لأداة Package Deployer. للقيام بذلك، اكتب الأمر التالي، واضغط مفتاح الإدخال ENTER:

    .\RegisterXRMTooling.ps1  
    
  5. قم بإضافة Windows PowerShell للأدوات XRM. وسوف يقوم هذا بتسجيل cmdlets التالية: Get-CrmConnection وGet-CrmOrganizations.

    Add-PSSnapin Microsoft.Xrm.Tooling.Connector  
    
  6. أضف الوظيفة الإضافية Windows PowerShell Package Deployer. وسوف يقوم هذا بتسجيل cmdlets التالية: Get-CrmPackages وImport-CrmPackage.

    Add-PSSnapin Microsoft.Xrm.Tooling.PackageDeployment  
    

    وأنت الآن جاهز لاستخدام هذه Windows PowerShell cmdlets. ولسرد cmdlets الذي قمت بتسجيلها، قم بتشغيل الأمر التالي في الموجه في النافذة Windows PowerShell:

Get-Help “Crm”  

استخدام cmdlet لاسترداد الحزم

قبل استخدام cmdlet، تأكد أنك قمت بنسخ الحزمة الخاصة بك إلى المجلد PackageDeployer‎ (في هذه الحالة، c:\CRM\SDK\Tools\PackageDeployer). الحزمة عبارة عن مجموعة من الملفات والمجلدات التي تم إنشاؤها في مجلد مشروع Visual Studio (<Project>\Bin\Debug) عندما تقوم بإنشاء مشروعك في Visual Studio. قم بنسخ المحتويات الكاملة لمجلد تصحيح المشروع الخاص بك إلى المجلد PackageDeployer‎. للحصول على معلومات تفصيلية حول إنشاء حزمة باستخدام Visual Studio، راجع MSDN: إنشاء الحزم لأداة CRM Package Deployer.

  1. في النافذة PowerShell، استخدم cmdlet التالي لإرجاع قائمة بالحزم المتوفرة للاستيراد في المجلد المحدد (في هذه الحالة، c:\CRM\SDK\Tools\PackageDeployer):

    Get-CrmPackages –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer  
    
  2. إذا كنت تريد معلومات حول حزمة ما في مجلد، يمكنك استخدام Get-CrmPackages cmdlet جنبا إلى جنب مع المعلمة –PackageName لتعيين اسم التجميع في المجلد الذي يحتوي على تعريف الحزمة.

    Get-CrmPackages –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer –PackageName SampleCRMPackage.dll  
    
  3. يمكن تخزين موقع تجميع الحزمة في متغير باستخدام الأمر Get-CrmPackages cmdlet. بعد ذلك يمكن إعادة استخدامه في Import-CrmPackage cmdlet لاستيراد قيمة للمعلمة PackageDirectory. على سبيل المثال، يمكنك تخزين المعلومات لإحدى الحزم أو أكثر التي تم إرجاعها من Get-CrmPackages cmdlet في متغير يسمى $MyPackages.

    $MyPackages = Get-CrmPackages –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer   
    

    لعرض كافة الحزم.

    $MyPackages  
    

    لعرض الحزمة الثالثة فقط.

    $MyPackages[2].PackageAssemblyLocation  
    

    بعد ذلك، يمكنك عمل مرجع لكل حزمة في الصفيف من 0 إلى n. على سبيل المثال، يقوم cmdlet هذا باستيراد الحزمة الأولى الموجودة في $MyPackages.

    Import-CrmPackage -CrmConnection $CRMConn -PackageDirectory $MyPackages[0].PackageAssemblyLocation  
    

    ملاحظة

    تم تقديم معلمة PackageAssemblyLocation والقدرة على عرض موقع المجلد واسم الحزمة لأول مرة مع تحديث يوليو 2017 لـ Dynamics 365 (على الإنترنت). مزيد من المعلومات: Dynamics 365 SDK

استخدام cmdlet للاتصال بمثيل Dynamics 365 الخاص بك

  1. قم بتوفير بيانات الاعتماد الخاصة بك للاتصال بمثيل Microsoft Dynamics 365 (على الإنترنت) أو Dynamics 365 (محلي). سوف يطلب منك تشغيل الأمر التالي كتابة اسم المستخدم وكلمة المرور للاتصال بمثيل Dynamics 365، وسيتم تخزينها في المتغير $Cred، واستخدامها فيما بعد للاتصال بخادم Dynamics 365 الخاص بك.

    $Cred = Get-Credential  
    
  2. واستخدم الأمر التالي للحصول على اتصال بمثيل Microsoft Dynamics 365 (على الإنترنت) أو Dynamics 365 (محلي). وسوف نقوم بتخزين معلومات الاتصال في المتغير $CRMConn:

    • إذا كنت تتصل بالمثيل Dynamics 365 (محلي):

      $CRMConn = Get-CrmConnection -ServerUrl http://<your_CRM_Server> -OrganizationName <your_Org_Name> -Credential $Cred  
      
    • إذا كنت تتصل بالخادم Microsoft Dynamics 365 (على الإنترنت):

      $CRMConn = Get-CrmConnection -DeploymentRegion NorthAmerica –OnlineType Office365 –OrganizationName <your_Org_Name> -Credential $Cred  
      

      ملاحظة

      بالنسبة إلى المعلمة DeploymentRegion، القيم الصالحة هي NorthAmerica، وEMEA، وAPACSouthAmerica، وOceania، وJPN، وNorthAmerica2. بالنسبة للمعلمة OnlineType، تكون المعلمات الصالحة هي Office365، وLiveID.

  3. ويتم التحقق من بيانات الاعتماد التي قمت بتوفيرها عند تشغيل الأمر في الخطوة 2.

استخدام cmdlet لنشر الحزم

بعد ذلك، استخدم معلومات اتصال Dynamics 365 المخزنة في المتغير $CRMConn لنشر الحزم إلى المثيل Dynamics 365. يعمل الأمر التالي على نشر حزمة، وتفكيك الحزمة في المجلد c:\UnpackedFiles، ويسجل المعلومات في ملف سجل في المجلد c:\MyLogFiles.

Import-CrmPackage –CrmConnection $CRMConn –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer –PackageName SampleCRMPackage.dll –UnpackFilesDirectory c:\UnpackedFiles -LogWriteDirectory C:\MyLogFiles -Verbose  

ملاحظة

  • المعلمات CrmConnection، وPackageDirectory، و PackageName تكون مطلوبة.

    • بدلاً من تحديد مجلد الحزمة يدوياً، يمكنك استخدام متغير مع المعلمة PackageDirectory. مزيد من المعلومات: استخدام cmdlet لاسترداد الحزم
    • بالنسبة للمعلمة PackageName، فيجب عليك تحديد اسم التجميع الذي يحتوي على تعريف الحزمة.
    • ولا تحتاج إلى تحديد المعلمة UnpackFilesDirectory إذا كانت الحزمة لا تقوم بفك الملفات أثناء توزيع الحزمة. وأثناء قيامك بتحديد حزمة ما في Visual Studio، يمكنك تحديد ما إذا كان سيتم فك الملفات باستخدام المعلمة agentdesktopzipfile‎ في الملف ImportConfig.xml. مزيد من المعلومات: MSDN: إنشاء الحزم لأداة CRM Package Deployer
    • والمعلمة Verbose اختيارية، وتُستخدم لعرض سجل مفصل للأنشطة التي يتم إجراؤها أثناء عملية نشر الحزمة.
    • يمكن استخدام المعلمة الاختيارية RuntimePackageSettings مع المعلمات التالية:

    • تعيّن المعلمة LCID=localeID معرف الإعدادات المحلية، مثل 1033 للغة الإنجليزية-الولايات المتحدة أو 1036 للغة الفرنسية-فرنسا من معرفات الإعدادات المحلية المتوفرة في الحزمة. إذا لم يتم تحديدها، فيتم استخدام اللغة الافتراضية.

    • المعالج

      يجب استخدام المعلمة SkipChecks=true/false فقط عندما لا تتضمن البيئة المستهدفة أية حلول أو تخصيصات أخرى. عند تعيين هذه المعلمة إلى true، سيتجاوز استيراد الحل بعض اختبارات السلامة، مما يؤدي إلى تحسين أداء الاستيراد.

    • يجب أن يكون المجلد الذي تحديده عند استخدام المعلمة LogWriteDirectory موجودًا بالفعل، ويجب أن يكون لدى المستخدم الذي يقوم بتشغيل الأمر Import-CrmPackage cmdlet إذن الكتابة إلى المجلد. بالإضافة إلى ذلك، تكون معلمة Verbose- مطلوبة عند استخدام المعلمة LogWriteDirectory.

    تم تقديم المعلمة LogWriteDirectory لأول مرة مع تحديث يوليو 2017 لـ Dynamics 365 (على الإنترنت). مزيد من المعلومات: Dynamics 365 SDK

يستورد الأمر المثال التالي حزمة تسمى SampleCRMPackage ويعيّن اللغة الإنجليزية-الولايات المتحدة (1033) كلغة لاستيراد الحزمة.

Import-CrmPackage –CrmConnection $CRMConn –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer –PackageName SampleCRMPackage.dll –UnpackFilesDirectory c:\UnpackedFiles –RuntimePackageSettings LCID=1033  

الحصول على تعليمات مفصلة حول cmdlets

في النافذة PowerShell، استخدم Get-Help cmdlet باسم "cmdlet" لعرض تعليمات مفصلة عن cmdlet. على سبيل المثال، للحصول على تعليمات مفصلة حول Import-CrmPackage cmdlet:

Get-Help Import-CrmPackage -full  

لعرض التعليمات عبر الإنترنت لأوامر cmdlets، راجع مرجع CRM PowerShell.

استكشاف مشكلات نشر الحزمة وإصلاحها باستخدام ملفات السجل

توفر الأداة Package Deployer دعم التسجيل للحصول على معلومات مفصلة حول الأخطاء التي يمكن أن تحدث أثناء تسجيل دخول شخص ما إلى مثيل Microsoft Dynamics 365 باستخدام الأداة ونشر الحزم. بشكل افتراضي، تقوم الأداة بإنشاء ثلاثة ملفات تسجيل تكون متوفرة في الموقع التالي على الكمبيوتر حيث تقوم بتشغيل الأداة: c:\Users\<UserName>\AppData\Roaming\Microsoft\Microsoft Dynamics CRM Package Deployer\<Version>. لتحديد مجلد آخر، استخدم معلمة LogWriteDirectory PowerShell cmdlet. مزيد من المعلومات: استخدام cmdlet لاسترداد الحزم

  • Login_ErrorLog.log: يوفر معلومات حول المشكلات التي حدثت عندما تستخدم الأداة لتسجيل الدخول إلى المثيل Dynamics 365. وإذا كان هناك أي مشكلات أثناء تسجيل الدخول، فستظهر رسالة على شاشة تسجيل دخول الأداة مع ارتباط إلى ملف السجل هذا. وتفيد الرسالة أنه حدث خطأ أثناء معالجة طلب تسجيل الدخول ويمكن للمستخدم عرض سجل الخطأ. يمكنك النقر فوق الارتباط الموجود في الرسالة لعرض ملف السجل هذا. يتم إنشاء ملف السجل في المرة الأولى لمواجهتك أية مشكلات خاصة بتسجيل الدخول في الأداة. ولذلك، يُستخدم ملف السجل لتسجيل المعلومات التي تخص المشكلات الخاصة بتسجيل الدخول، متى تحدث.

  • PackageDeployer.log: يوفر معلومات تفصيلية حول كل مهمة يتم تنفيذها في الأداة أثناء توزيع الحزم. يمكنك عرض ملف السجل من الأداة بالنقر فوق ارتباط عرض ملف السجل أسفل الشاشة.

  • ComplexImportDetail.log: يوفر معلومات إضافية حول البيانات التي تم استيرادها في آخر توزيع باستخدام الأداة. وفي كل مرة يتم نشر حزمة باستخدام هذه الأداة، يتم نقل التفاصيل الموجودة من ملف السجل إلى ملف يسمى ComplexImportDetail._old.log في نفس الدليل، ويعرض الملف ComplexImportDetail.log معلومات حول الاستيراد الأحدث الذي تم باستخدام الأداة.

‏‫أفضل الممارسات لنشر الحزم

أثناء نشر الحزم، يلزم على مسؤولي Dynamics 365 أن:

  • الإصرار على تجميع حزمة تم تسجيل دخولها بحيث يتمكن من تتبع تجميع ما إلى مصدره.

  • اختبار الحزمة على مثيل ما قبل الإنتاج (يفضل أن يكون صورة طبق الأصل من مثيل الإنتاج) قبل القيام بتشغيلها على خادم إنتاج.

  • القيام بالنسخ الاحتياطي لمثيل الإنتاج قبل نشر الحزمة.

(راجع أيضاً )

MSDN: إنشاء الحزم لأداة CRM Package Deployer
دليل الإدارة لـ Microsoft Dynamics CRM 2013 وMicrosoft Dynamics CRM Online