इसके माध्यम से साझा किया गया


Package Deployer उपकरण के लिए पैकेज बनाएँ

Package Deployer के चलते व्यवस्थापक Microsoft Dataverse आवृत्तियों पर पैकेज परिनियोजित कर सकते हैं. Package Deployer पैकेज में निम्न में से कोई एक या सभी मौजूद हो सकते हैं:

  • एक या एक से अधिक Dataverse समाधान फ़ाइलें.
  • फ़्लैट फ़ाइलें या कॉंफ़िगरेशन माइग्रेशन उपकरण से निर्यात की गई कॉन्फ़िगरेशन डेटा फ़ाइल. उपकरण के बारे में अधिक जानकारी के लिए, Configuration Migration टूल की सहायता से कॉन्फ़िगरेशन डेटा को आवृत्तियों और संगठनों में स्थानांतरित करें देखें.
  • वह कस्टम कोड, जिसे Dataverse आवृत्ति में पैकेज परिनियोजित किए जाने से पहले, दौरान या बाद में चलाया जा सकता है.
  • इस पैकेज के लिए ऐसी विशिष्ट HTML सामग्री, जिसे परिनियोजन प्रक्रिया की शुरुआत में और अंत में प्रदर्शित किया जा सकता है. यह सामग्री उन समाधानों और फ़ाइलों का विवरण प्रदान करने में उपयोगी हो सकती है, जिन्हें इस पैकेज में परिनियोजित किया गया है.

नोट

एक अन्य पैकेज प्रकार है जिसे प्लग-इन पैकेज कहा जाता है. इस तरह का पैकेज प्लग-इन निर्भर असेंबली के लिए है और इसका Package Deployer पैकेजों से कोई संबंध नहीं है.

पूर्वावश्यकताएँ

  • सुनिश्चित करें कि आपके पास वे सभी समाधान और अन्य फ़ाइलें तैयार हैं, जिन्हें आप पैकेज में शामिल करना चाहते हैं.
  • Visual Studio 2019 या बाद में, या Visual Studio कोड.

प्रक्रिया अवलोकन

Package Deployer पैकेज बनाने के लिए, निम्नलिखित चरणों का पालन करें।

  • Visual Studio या MSBuild प्रोजेक्ट बनाएं
  • परियोजना में समाधान और अन्य फाइलें जोड़ें
  • प्रदान की गई HTML फ़ाइलें अपडेट करें (वैकल्पिक)
  • पैकेज के लिए कॉन्फ़िगरेशन मान निर्दिष्ट करें
  • अपने पैकेज के लिए कस्टम कोड परिभाषित करें
  • पैकेज बनाएं और परिनियोजित करें

इन चरणों का इस आलेख में विस्तार से वर्णन किया गया है।

पैकेज प्रोजेक्ट बनाएँ

पैकेज के लिए Visual Studio या MSBuild प्रोजेक्ट बनाना पहला कदम है. ऐसा करने के लिए, आपके पास अपने विकास कंप्यूटर पर स्थापित दो उपलब्ध टूल एक्सटेंशन में से एक होना चाहिए. यदि Visual Studio Code का उपयोग कर रहे हैं, तो Microsoft Power Platform CLI इंस्टॉल करें. अन्यथा, यदि 2019 या बाद का संस्करण उपयोग कर रहे हैं, तो इसके लिए उपकरण स्थापित करें। Visual Studio Power Platform Visual Studio

वांछित टूल एक्सटेंशन का उपयोग करके प्रोजेक्ट बनाने का तरीका जानने के लिए नीचे उपयुक्त टैब का चयन करें. दोनों टूल्स प्रोजेक्ट को एक समान प्रारूप में आउटपुट करते हैं.

आरंभिक पैकेज बनाने के लिए pac package init कमांड चलाएँ. अधिक जानकारी: pac package

pac package init help
pac package init --outputDirectory DeploymentPackage

परिणामी CLI आउटपुट में नीचे दिखाए गए फ़ोल्डर और फ़ाइलें शामिल हैं. "DeploymentPackage" फ़ोल्डर नाम यहाँ एक उदाहरण के रूप में इस्तेमाल किया गया था.

C:.
└───DeploymentPackage
    │   DeploymentPackage.csproj
    │   PackageImportExtension.cs
    │
    └───PkgAssets
            ImportConfig.xml
            manifest.ppkg.json

बनाए गए प्रोजेक्ट में, PkgAssets फ़ोल्डर में ImportConfig.xml कॉन्फ़िगरेशन फ़ाइल और PackageImportExtension.cs फ़ाइल ढूंढें। आप इन फ़ाइलों को इस आलेख में आगे बताए अनुसार संशोधित करेंगे।

पैकेज फाइलें जोड़ें

पैकेज प्रोजेक्ट बनाने के बाद, आप उस प्रोजेक्ट में समाधान और अन्य फ़ाइलें जोड़ना शुरू कर सकते हैं.

CLI का उपयोग करते समय, आप add उप-आदेशों में से किसी एक का उपयोग करके अपने पैकेज प्रोजेक्ट में बाहरी पैकेज, समाधान और संदर्भ जोड़ सकते हैं. उप-आदेशों की सूची देखने के लिए pac package help दर्ज करें. आइए हमारे पैकेज में समाधान जोड़ें.

> pac package add-solution help

Commands:
Usage: pac package add-solution --path [--import-order] [--skip-validation] [--publish-workflows-activate-plugins] [--overwrite-unmanaged-customizations] [--import-mode] [--missing-dependency-behavior] [--dependency-overrides]

> cd .\DeploymentPackage\
> pac package add-solution --path ..\TestSolution_1_0_0_1_managed.zip

The item was added successfully.

पैकेज कॉन्फ़िगर करें

प्रोजेक्ट में उपलब्ध ImportConfig.xml फ़ाइल में अपने पैकेज के बारे में जानकारी जोड़कर पैकेज कॉन्फ़िगरेशन परिभाषित करें. उपयोग करने के लिए मान्य तत्वों और विशेषताओं के उदाहरण और विवरण के लिए ImportConfig संदर्भ देखें।

कस्टम कोड जोड़ें

आप कस्टम कोड जोड़ सकते हैं जो पर्यावरण में पैकेज के आयात से पहले, उसके दौरान और बाद में निष्पादित होता है. ऐसा करने के लिए, इन निर्देशों का अनुसरण करें.

  1. प्रोजेक्ट के रूट फ़ोल्डर में PackageTemplate.cs (या PackageImportExtension.cs) फ़ाइल संपादित करें.

  2. C# फ़ाइल में, आप निम्न कर सकते हैं:

    1. InitializeCustomExtension की ओवरराइड विधि परिभाषा में पैकेज प्रारंभ किए जाने पर, निष्पादित करने के लिए कस्टम कोड दर्ज करें.

      इस विधि का उपयोग करके उपयोगकर्ता पैकेज चलाने के दौरान रनटाइम पैरामीटर का उपयोग कर सकते हैं. एक डेवलपर के रूप में, आप RuntimeSettingsगुण का उपयोग करके अपने पैकेज में किसी भी रनटाइम पैरामीटर के लिए तब तक समर्थन जोड़ सकते हैं, जब तक कि आपके पास उपयोगकर्ता इनपुट के आधार पर उसे संसाधित करने का कोड हो.

      उदाहरण के लिए, निम्न नमूना कोड उस पैकेज के लिए SkipChecks नामक रनटाइम पैरामीटर सक्षम करता है, जिसके दो संभव मान हैं: सही या गलत. नमूना कोड जाँचता है कि उपयोगकर्ता ने Package Deployer चलाने के दौरान कोई रनटाइम पैरामीटर निर्दिष्ट किया है या नहीं (या तो आदेश पंक्ति या PowerShell का उपयोग करके) और उसके बाद तदनुसार जानकारी संसाधित करता है. यदि पैकेज चलाते समय उपयोगकर्ता द्वारा कोई रनटाइम पैरामीटर निर्दिष्ट नहीं किया जाता है, तो RuntimeSettings गुण का मान नल होगा.

      public override void InitializeCustomExtension()  
      {  
      // Do nothing.  
      
      // Validate the state of the runtime settings object.  
      if (RuntimeSettings != null)  
      {  
      PackageLog.Log(string.Format("Runtime Settings populated.  Count = {0}", RuntimeSettings.Count));  
      foreach (var setting in RuntimeSettings)  
      {  
      PackageLog.Log(string.Format("Key={0} | Value={1}", setting.Key, setting.Value.ToString()));  
      }  
      
      // Check to see if skip checks is present.  
      if ( RuntimeSettings.ContainsKey("SkipChecks") )  
      {  
      bool bSkipChecks = false;  
      if (bool.TryParse((string)RuntimeSettings["SkipChecks"], out bSkipChecks))  
      OverrideDataImportSafetyChecks = bSkipChecks;  
      }  
      }  
      else  
      PackageLog.Log("Runtime Settings not populated");  
      }  
      

      यह कोड व्यवस्थापक को यह निर्दिष्ट करने के लिए आदेश पंक्ति या Import-CrmPackage cmdlet का उपयोग करने देता है कि पैकेज को आयात करने के लिए Package Deployer उपकरण चलाने के दौरान सुरक्षा जाँचों को छोड़ना है या नहीं. अधिक जानकारी: Package Deployer और Windows PowerShell का उपयोग करके पैकेज परिनियोजित करें

    2. यह निर्दिष्ट करने के लिए, PreSolutionImport की ओवरराइड विधि परिभाषा में समाधान आयात किए जाने से पहले निष्पादित करने के लिए कस्टम कोड जोड़ें कि लक्ष्य Dataverse आवृत्ति में निर्दिष्ट समाधान अद्यतन करने के दौरान अनुकूलन को कायम रखना है या उसे अधिलेखित करना है और प्लग-इन और कार्यप्रवाह को स्वचालित रूप से सक्रिय करना है या नहीं.

    3. किसी समाधान के दो संस्करणों के बीच डेटा रूपांतरण या नवीनीकरण करने के लिए RunSolutionUpgradeMigrationStep की ओवरराइड विधि परिभाषा का उपयोग करें। यह विधि केवल तभी कॉल की जाती है, जब आपके द्वारा आयात किया जा रहा समाधान पहले से ही लक्ष्य Dataverse इंस्टेंस में मौजूद हो।

      यह फ़ंक्शन निम्न पैरामीटर की अपेक्षा करता है:

      पैरामीटर वर्णन
      solutionName समाधान का नाम
      oldVersion पुराने समाधान की संस्करण संख्या
      newVersion नए समाधान की संस्करण संख्या
      oldSolutionId पुराने समाधान का GUID.
      newSolutionId नए समाधान का GUID.
    4. समाधान आयात पूर्ण होने से पहले, BeforeImportStage की ओवरराइड विधि परिभाषा में निष्पादित करने के लिए कस्टम कोड दर्ज करें. ImportConfig.xml फ़ाइल में निर्दिष्ट समाधान के लिए नमूना डेटा और कुछ फ़्र्लैट फ़ाइलें, समाधान आयात पूर्ण होने से पहले आयात की जाती हैं.

    5. OverrideConfigurationDataFileLanguageकी ओवरराइड विधि परिभाषा का उपयोग करके कॉन्फ़िगरेशन डेटा आयात के लिए वर्तमान में चयनित भाषा को ओवरराइड करें। यदि पैकेज में उपलब्ध भाषाओं की सूची में निर्दिष्ट भाषा की निर्दिष्ट लोकेल आईडी (LCID) नहीं मिलती है, तो डिफ़ॉल्ट डेटा फ़ाइल आयात की जाती है।

      आप ImportConfig.xml फ़ाइल में <cmtdatafiles> नोड में कॉन्फ़िगरेशन डेटा के लिए उपलब्ध भाषाओं को निर्दिष्ट करते हैं. ImportConfig.xml फ़ाइल में, crmmigdataimportfile एट्रिब्यूट में डिफ़ॉल्ट कॉन्फ़िगरेशन डेटा आयात फ़ाइल निर्दिष्ट की जाती है.

      यदि आप सुनिश्चित हैं कि लक्ष्य OverrideDataImportSafetyChecks इंस्टेंस में कोई डेटा नहीं है, तो डेटा जांच छोड़ना ( Dataverse = true) यहां प्रभावी हो सकता है।

    6. आयात पूर्ण होने के बाद, AfterPrimaryImport>विधि की ओवरराइड परिभाषा में निष्पादित करने के लिए कस्टम कोड दर्ज करें. शेष फ्लैट फ़ाइलें जो समाधान आयात शुरू होने से पहले आयात नहीं की गई थीं, अब आयात की जाती हैं.

    7. अपने पैकेज फ़ोल्डर के डिफ़ॉल्ट नाम को अपने इच्छित पैकेज नाम में बदलें. ऐसा करने के लिए, समाधान एक्स्प्लोरर फलक में PkgFolder(या PkgAssets) फ़ोल्डर का नाम बदलें और उसके बाद GetImportPackageDataFolderName गुण के अंतर्गत वापसी मान संपादित करें.

      public override string GetImportPackageDataFolderName  
      {  
      get  
      {  
      // WARNING this value directly correlates to the folder name in the Solution Explorer where the ImportConfig.xml and sub content is located.  
      // Changing this name requires that you also change the correlating name in the Solution Explorer  
      return "PkgFolder";  
      }  
      }  
      
    8. GetNameOfImport गुण के अंतर्गत वापसी मान को संपादित करके पैकेज का नाम बदलें.

      public override string GetNameOfImport(bool plural)  
      {  
      return "Package Short Name";  
      }  
      

      यह लौटाया गया मान आपके पैकेज का नाम है जो Dynamics 365 Package Deployer विज़ार्ड में पैकेज चयन पृष्ठ पर दिखाई देता है.

    9. GetImportPackageDescriptionText गुण के अंतर्गत वापसी मान को संपादित करके पैकेज का विवरण बदलें.

      
      public override string GetImportPackageDescriptionText  
      {  
      get { return "Package Description"; }  
      }  
      
      

      यह लौटाया गया मान पैकेज विवरण है जो Package Deployer विज़ार्ड में पैकेज चयन पृष्ठ पर पैकेज नाम के साथ दिखाई देता है।

    10. GetLongNameOfImport गुण के अंतर्गत वापसी मान को संपादित करके पैकेज का लंबा नाम बदलें.

      
      public override string GetLongNameOfImport  
      {  
      get { return "Package Long Name"; }  
      }  
      
      

      आपके द्वारा स्थापित किए जाने वाले पैकेज को चुनने के बाद पैकेज का लंबा नाम अगले पृष्ठ पर दिखाई देता है.

  3. इसके अलावा, निम्न फ़ंक्शन और चर पैकेज के लिए उपलब्ध होते हैं:

    नाम प्रकार वर्णन
    CreateProgressItem(String) Function उपयोगकर्ता इंटरफ़ेस (UI) में एक नया प्रगति आइटम बनाने के लिए उपयोग किया जाता है.
    RaiseUpdateEvent(String, ProgressPanelItemStatus) Function कॉल टू CreateProgressItem(String) द्वारा बनाई गई प्रगति अद्यतन करने के लिए उपयोग किया जाता है.

    ProgressPanelItemStatus निम्न मानों वाला एक एनम है:

    कार्यरत = 0
    पूर्ण = 1
    विफल = 2
    चेतावनी = 3
    अज्ञात = 4
    RaiseFailEvent(String, Exception) Function अपवाद संदेश के साथ वर्तमान स्थिति आयात को विफल करने के लिए उपयोग किया जाता है.
    IsRoleAssoicatedWithTeam(Guid, Guid) Function यह निर्धारित करने के लिए उपयोग किया जाता है कि भूमिका एक निर्दिष्ट टीम से संबद्ध है या नहीं.
    IsWorkflowActive(Guid) Function यह निर्धारित करने के लिए उपयोग किया जाता है कि निर्दिष्ट कार्यप्रवाह सक्रिय है या नहीं.
    PackageLog क्लास पॉइंटर यह पैकेज के लिए प्रारंभिक लॉगिंग इंटरफ़ेस हेतु एक पॉइंटर है. पैकेज द्वारा इस इंटरफ़ेस का उपयोग, पैकेज लॉग फ़ाइल पर संदेश और अपवाद लॉग करने के लिए किया जाता है.
    RootControlDispatcher गुण यह एक डिस्पैचर इंटरफ़ेस है, जिसका उपयोग पैकेज परिनियोजन के दौरान आपके नियंत्रण को अपने UI को रेंडर करने की अनुमति देने के लिए किया जाता है. किसी भी UI तत्व या आदेश को रैप करने के लिए इस इंटरफ़ेस का उपयोग करें. इस चर का उपयोग करने से पहले इसमें शून्य मानों की जांच करना महत्वपूर्ण है, क्योंकि हो सकता है कि इसे किसी मान पर सेट न किया गया हो।
    CrmSvc गुण यह CrmServiceClient वह क्लास के लिए एक पॉइंटर है, जिसके पैकेज के लिए अनुमति प्राप्त है कि वह पैकेज के भीतर Dynamics 365 का समस्या निवारण करे. ओवरराइड विधियों में SDK विधियों और अन्य क्रियाओं को निष्पादित करने के लिए इस पॉइंटर का उपयोग करें.
    DataImportBypass गुण यह निर्दिष्ट करें कि क्या Dynamics 365 Package Deployer सभी डेटा आयात कार्रवाइयों को छोड़ देता है या नहीं, जैसे Dataverse नमूना डेटा, फ़्लैट फ़ाइल डेटा और Configuration Migration टूल से निर्यात किए गए डेटा को आयात करना. सही या गलत निर्दिष्ट करें. false डिफ़ॉल्ट है.
    OverrideDataImportSafetyChecks गुण निर्दिष्ट करें कि क्या Dynamics 365 Package Deployer अपनी कुछ सुरक्षा जाँचों को बायपास करता है, जो आयात प्रदर्शन को बेहतर बनाने में मदद करता है. true या false निर्दिष्ट करें. false डिफ़ॉल्ट है.

    आपको यह गुण true केवल तभी सेट करना चाहिए जब लक्ष्य Dataverse इंस्टेंस में कोई डेटा न हो।
  4. अपना प्रोजेक्ट सहेजें. अगला चरण पैकेज बनाना है.

खरीदें और परिनियोजित करें

निम्नलिखित अनुभागों में पैकेज बनाने और तैनात करने का तरीका बताया गया है।

निर्माण

आप किस उपकरण का उपयोग कर रहे हैं, इसके आधार पर पैकेज का निर्माण नीचे वर्णित है।

CLI के साथ बनाए गए पैकेज को बनाने के लिए, आप .csproj फ़ाइल को Visual Studio में लोड कर सकते हैं, लेकिन इसके बजाय हम dotnet कमांड और MSBuild का उपयोग करने जा रहे हैं। नीचे दिए गए उदाहरण में माना गया है कि वर्किंग डायरेक्टरी में *.csproj फाइल है.

> dotnet publish

DeploymentPackage -> C:\Users\peter\Downloads\DeploymentPackage\bin\Debug\DeploymentPackage.1.0.0.pdpkg.zip

आप वैकल्पिक रूप से निर्मित पैकेज के विवरण को देख सकते हैं.

> pac package show --package .\bin\Debug\DeploymentPackage.1.0.0.pdpkg.zip

आपका पैकेज<Project>\Bin\Debug फ़ोल्डर के अंतर्गत निम्न फ़ाइलों से बनता है.

  • <पैकेजनाम> फ़ोल्डर: फ़ोल्डर का नाम वही है जिसे आपने इस अनुभाग के चरण 2.g में अपने पैकेज फ़ोल्डर नाम के लिए बदला था कस्टम कोड जोड़ें. इस फ़ोल्डर में आपके पैकेज के लिए सभी समाधान, कॉन्फ़िगरेशन डेटा, फ़्लैट फ़ाइलें और सामग्री है.

नोट

आप एक .NET फोल्डर (जैसे, net472) देख सकते हैं जिसमें एक pdpublish फोल्डर है. आपकी DLL और अन्य प्रोजेक्ट फ़ाइलें उस pdpublish फ़ोल्डर में हैं.

  • <PackageName>.dll: असेंबली में आपके पैकेज के लिए कस्टम कोड होता है. डिफ़ॉल्ट रूप से, असेंबली का नाम आपके प्रोजेक्ट का नाम ही होता है.

परिनियोजित करें

पैकेज बनाने के बाद, आप Package Deployer उपकरण, Windows PowerShell या CLI कमांड का उपयोग करके उसे Dataverse आवृत्ति पर परिनियोजित कर सकते हैं.

  • Package Deployer टूल का उपयोग करके परिनियोजित करने के लिए, पहले टूल को Dataverse डेवलपमेंट टूल में बताए अनुसार डाउनलोड करें. इसके बाद, आलेख Package Deployer या Windows PowerShell का उपयोग करके पैकेज परिनियोजित करें में पैकेज परिनियोजित करने पर विस्तृत जानकारी का पालन करें.

  • CLI का उपयोग करके परिनियोजित करने के लिए, pac package deploy कमांड का उपयोग करें.

    > pac package deploy --package .\bin\Debug\DeploymentPackage.1.0.0.pdpkg.zip
    

    नोट

    CLI का उपयोग करके किसी लक्ष्य परिवेश में पैकेज परिनियोजित करने के लिए, आपको पहले एक प्रमाणीकरण प्रोफ़ाइल सेट करनी होगी और एक संगठन का चयन करना होगा. अधिक जानकारी: pac auth create, pac org select

सर्वश्रेष्ठ व्यवहार

Package Deployer पैकेजों के साथ काम करते समय पालन करने के लिए कुछ सर्वोत्तम अभ्यास युक्तियों की सूची नीचे दी गई है.

पैकेज बनाना

पैकेज बनाते समय, डेवलपर्स को चाहिए:

  • सुनिश्चित करें कि पैकेज असेंबली पर हस्ताक्षर किए गए हैं.

पैकेज परिनियोजित करें

पैकेज परिनियोजित करते समय, Dataverse व्यवस्थापकों को निम्न क्रिया करनी चाहिए:

  • साइन की गई पैकेज एसेंबली पर ज़ोर देना चाहिए, ताकि आप किसी एसेंबली को वापस उसके स्रोत में ट्रैक कर सकें.
  • पैकेज को उत्पादन इंस्टेंस पर चलाने से पहले, प्रीप्रोडक्शन इंस्टेंस पर परीक्षण करें, अधिमानतः उत्पादन इंस्टेंस की दर्पण छवि पर।
  • पैकेज को परिनियोजित करने से पहले उत्पादन इंस्टेंस का बैकअप लें.

इसे भी देखें

समाधान पैकेजर साधन