Bagikan melalui


Buat paket untuk alat Package Deployer

Package Deployer memungkinkan administrator untuk menyebarkan paket di instans Microsoft Dataverse. Paket Package Deployer dapat terdiri dari salah satu atau semua hal berikut:

  • Satu atau beberapa file solusi Dataverse.
  • File tetap atau file data konfigurasi yang diekspor dari Configuration Migration tool. Untuk informasi lebih lanjut tentang alat, lihat Pindahkan data konfigurasi di seluruh instans dan organisasi dengan Configuration Migration tool.
  • Kode kustom yang dapat berjalan sebelum, selama, atau setelah paket disebarkan ke instans Dataverse.
  • Konten HTML khusus paket yang dapat ditampilkan di awal dan akhir proses penyebaran. Konten ini dapat bermanfaat untuk memberikan keterangan solusi dan file yang disebarkan di paket.

Catatan

Ada jenis paket lain yang disebut paket plug-in. Paket semacam itu adalah untuk asembli dependen plug-in dan tidak memiliki relasi dengan paket Package Deployer.

Prasyarat

  • Pastikan Anda menyiapkan semua solusi dan file lainnya yang akan disertakan dalam paket.
  • Visual Studio 2019 atau yang lebih baru, atau Visual Studio Kode.

Ikhtisar proses

Untuk membuat Package Deployer paket, lakukan langkah-langkah berikut.

  • Membuat proyek Visual Studio atau MSBuild
  • Menambahkan solusi dan file lainnya ke proyek
  • Pembaruan file HTML yang diberikan (opsional)
  • Tentukan nilai konfigurasi untuk paket
  • Tentukan kode kustom untuk paket
  • Buat dan terapkan paket

Langkah-langkah ini dijelaskan secara rinci dalam artikel ini.

Buat proyek paket

Langkah pertama adalah membuat proyek Visual Studio atau MSBuild untuk paket. Untuk melakukannya, Anda harus memiliki salah satu dari dua ekstensi alat yang tersedia yang terinstal di komputer pengembangan. Jika menggunakan Visual Studio Code, instal Microsoft Power Platform CLI. Jika tidak, jika menggunakan Visual Studio 2019, instal Power Platform tools untuk Visual Studio. Ekstensi Power Platform alat saat ini hanya tersedia untuk Visual Studio 2019. Namun, proyek yang dibuat dapat dibangun menggunakan Visual Studio 2019 atau versi yang lebih baru.

Pilih tab yang sesuai di bawah ini untuk mengetahui cara membuat proyek menggunakan ekstensi alat yang diinginkan. Kedua alat output proyek dalam format yang serupa.

Jalankan perintah pac package init untuk membuat paket awal. Informasi lebih lanjut: paket pac

pac package init help
pac package init --outputDirectory DeploymentPackage

Output CLI yang dihasilkan berisi folder dan file yang ditampilkan di bawah. Nama folder "DeploymentPackage" digunakan di sini sebagai contoh.

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

Dalam proyek yang dibuat, temukan file konfigurasi ImportConfig.xml di folder PkgAssets dan file PackageImportExtension.cs. Anda akan memodifikasi file-file ini seperti yang dijelaskan nanti dalam artikel ini.

Tambah file paket

Setelah membuat proyek paket, Anda dapat mulai menambahkan solusi dan file lainnya ke proyek tersebut.

Bila menggunakan CLI, Anda dapat menambahkan paket eksternal, solusi, dan referensi ke proyek paket menggunakan salah satu subperintah add. Masukkan pac package help untuk melihat daftar subperintah. Tambahkan solusi ke paket kita.

> 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.

Konfigurasikan paket

  1. Tentukan konfigurasi paket dengan menambahkan informasi tentang paket di file importconfig.xml yang tersedia di proyek. Buka file untuk diedit. Daftar berikut menyediakan informasi tentang tiap parameter dan node di file konfigurasi.

    installsampledata
    True atau false. Jika true, menginstal data sampel ke instans Dataverse. Data ini adalah data sampel yang sama yang dapat Anda instal dari area Pengaturan>manajemen data di Dataverse.

    waitforsampledatatoinstall
    True atau false. Jika true, dan jika installsampledata juga diatur ke True, menunggu sampel data untuk diinstal sebelum penyebaran paket.

    Catatan

    Pastikan Anda mengatur installsampledata ke True jika Anda mengatur waitforsampledatatoinstall ke True.

    agentdesktopzipfile
    Nama file zip untuk dibuka paketnya. Jika Anda menentukan nama file .zip di sini, maka akan ditambahkan layar selama proses penyebaran paket yang meminta Anda untuk memilih lokasi yang akan Anda gunakan untuk membongkar isi file.

    Atribut ini biasanya digunakan untuk membuat paket Unified Service Desk untuk Dynamics 365. Untuk informasi tentang Unified Service Desk, lihat Panduan Administrasi untuk Unified Service Desk 3.0.

    agentdesktopexename
    Nama file .exe atau .msi di file zip atau URL yang akan dipanggil di akhir proses penyebaran.

    Atribut ini biasanya digunakan untuk membuat paket Unified Service Desk.

    crmmigdataimportfile
    Nama file file data konfigurasi default (.zip) diekspor menggunakan Configuration Migration tool.

    • Anda juga dapat mengimpor file data konfigurasi versi terlokalisasi berdasarkan ID lokal (LCID) yang ditentukan menggunakan pengaturan runtime baru saat menjalankan Package deployer. Gunakan node <cmtdatafile> (dijelaskan nanti) untuk menentukan versi lokal file data konfigurasi dalam paket dan kemudian menggunakan metode OverrideConfigurationDataFileLanguage (dijelaskan nanti) untuk menentukan logika untuk mengimpor file data konfigurasi berdasarkan id lokal yang ditentukan menggunakan pengaturan runtime. Anda tidak dapat mengimpor lebih dari satu file data konfigurasi menggunakan paket sekaligus.

    • For Dataverse (lokal), jika file data konfigurasi Anda berisi informasi pengguna, dan instans sumber dan target berada di Domain Active Directory yang sama, informasi pengguna diimpor ke instans target Dataverse Dataverse . Untuk mengimpor informasi pengguna ke instans Dataverse (lokal) pada domain yang berbeda, anda harus menyertakan file peta pengguna (.xml) yang dihasilkan menggunakan Configuration Migration tool dalam proyek anda, dan menentukannya bersama file data konfigurasi menggunakan atribut usermapfilename di node <cmtdatafile> yang dijelaskan nanti. Informasi pengguna tidak dapat diimpor ke Dataverse instans.
      Node <solutions>
      Berisi larik node <configsolutionfile> yang menjelaskan solusi untuk diimpor. Urutan solusi di dalam node ini menunjukkan urutan di mana solusi akan diimpor pada instans Dataverse target.

      Node <configsolutionfile>
      Gunakan node ini di bawah node <solutions> untuk menentukan solusi individual dan informasi berikut untuk setiap solusi yang akan diimpor:

    • solutionpackagefilename: Tentukan nama file .zip solusi Anda. Harus diisi.

    • overwriteunmanagedcustomizations: Tentukan apakah akan menimpa penyesuaian tidak terkelola apa pun saat mengimpor solusi yang sudah ada di instans Dynamics 365 target. Atribut ini opsional, dan jika Anda tidak menentukan atribut ini, secara default penyesuaian tidak terkelola dalam solusi yang ada dipertahankan pada instans Dynamics 365 target.

    • publishworkflowsandactivateplugins: Tentukan apakah akan mempublikasikan alur kerja dan mengaktifkan plug-in dalam instans Dynamics 365 target setelah solusi diimpor. Atribut ini opsional, dan jika Anda tidak menentukan atribut ini, secara default alur kerja dipublikasikan dan plug-in diaktifkan setelah solusi diimpor pada instans Dynamics 365 target.

      Anda dapat menambahkan beberapa nama file solusi dalam satu paket dengan menambahkan sebanyak mungkin node <configsolutionfile>. Misalnya, jika Anda ingin tiga file solusi diimpor, tambahkan seperti ini sebagaimana ditampilkan di bawah ini:

    
    <solutions>  
    <configsolutionfile solutionpackagefilename="SampleSolutionOne_1_0_managed.zip"  
    overwriteunmanagedcustomizations="false"  
    publishworkflowsandactivateplugins="true"/>  
    <configsolutionfile solutionpackagefilename="SampleSolutionTwo_1_0_managed.zip"  
    overwriteunmanagedcustomizations="false"  
    publishworkflowsandactivateplugins="true"/>  
    <configsolutionfile solutionpackagefilename="SampleSolutionThree_1_0_managed.zip" />  
    </solutions>  
    
    

    Node <filestoimport>
    Berisi larik node <configimportfile> dan <zipimportdetails> yang digunakan untuk mendeskripsikan file individual dan file zip masing-masing untuk diimpor.

    Node <configimportfile>
    Gunakan node ini di bawah node <configimportfile> untuk mendeskripsikan file yang akan diimpor ke Dataverse. Anda dapat menambahkan beberapa file dalam satu paket dengan menambahkan sebanyak mungkin node <configimportfile>.

    
    <filestoimport>  
    <configimportfile filename="File.csv"  
    filetype="CSV"  
    associatedmap="FileMap"  
    importtoentity="FileEntity"  
    datadelimiter=""  
    fielddelimiter="comma"  
    enableduplicatedetection="true"  
    isfirstrowheader="true"  
    isrecordownerateam="false"  
    owneruser=""  
    waitforimporttocomplete="true" />  
    <configimportfile filename="File.zip"  
    filetype="ZIP"  
    associatedmap="FileMapName"  
    importtoentity="FileEntity"  
    datadelimiter=""  
    fielddelimiter="comma"  
    enableduplicatedetection="true"  
    isfirstrowheader="true"  
    isrecordownerateam="false"  
    owneruser=""  
    waitforimporttocomplete="true"/>  
    
    </filestoimport>  
    
    

    Berikut adalah daftar atribut yang didukung:

    Atribut Description
    filename Nama file yang berisi data impor. Jika file tersebut adalah file .zip, node <zipimportdetails> harus ada dengan node <zipimportdetail> untuk setiap file dalam file .zip.
    filetype Nilai ini dapat berupa CSV, XML, atau zip.
    associatedmap Nama peta data impor Dataverse yang akan digunakan dengan file ini. Jika kosong, coba gunakan nama peta data impor yang ditentukan sistem untuk file ini.
    importtoentity Dapat berupa nama file exe di file zip atau URL atau file .msi untuk memberikan tautan yang akan dipanggil di akhir proses.
    datadelimiter Nama pembatas data yang digunakan dalam file impor. Nilai yang valid adalah tanda kutip tunggal atau tanda kutip ganda.
    fielddelimiter Nama pembatas bidang yang digunakan dalam file impor. Nilai yang valid adalah koma atau titik dua, atau tanda kutip tunggal.
    enableduplicatedetection Menunjukkan apakah akan mengaktifkan aturan deteksi duplikat saat impor data. Nilai yang valid adalah True atau false.
    isfirstrowheader Digunakan untuk menunjukkan bahwa baris pertama file impor berisi nama bidang. Nilai yang valid adalah true atau false.
    isrecordownerateam Menunjukkan apakah pemilik rekaman pada impor harus berupa tim. Nilai yang valid adalah true atau false.
    owneruser Menunjukkan ID pengguna yang akan memiliki rekaman. Nilai default adalah pengguna yang saat ini masuk.
    waitforimporttocomplete Jika true, sistem menunggu proses impor selesai sebelum melanjutkan. Jika false, pekerjaan diantre dan bergerak terus.

    Node <zipimportdetails>
    Node ini berisi larik node <zipimportdetail> yang menjelaskan file yang disertakan dalam file zip yang digunakan untuk mengimpor ke Dynamics 365.

    Node <zipimportdetail>
    Gunakan node ini di bawah node <zipimportdetails> untuk menyediakan informasi tentang file individual dalam file .zip yang ditentukan di node <configimportfile>.

    <filestoimport>  
    ...  
    ...  
    <zipimportdetails>  
    <zipimportdetail filename="subfile1.csv" filetype="csv" importtoentity="account" />  
    <zipimportdetail filename="subfile2.csv" filetype="csv" importtoentity="contact" />  
    </zipimportdetails>  
    </filestoimport>  
    
    

    Atribut yang didukung dicantumkan di bawah ini:

    Atribut Description
    filename Nama file yang berisi data impor.
    filetype Nilai ini dapat berupa CSV atau XML.
    importtoentity Dapat berupa nama file exe di file zip atau URL atau file .msi untuk memberikan tautan yang akan dipanggil di akhir proses.

    Node <filesmapstoimport>
    Node ini berisi larik node <configmapimportfile> untuk diimpor. Urutan file peta di node ini menunjukkan urutan pengimporannya. Untuk informasi tentang peta data, lihat membuat peta data untuk diimpor.

    Node <configimportmapfile>
    Gunakan node ini di bawah node <filesmapstoimport> untuk menyediakan informasi tentang file peta individual untuk diimpor di Dataverse.

    <filesmapstoimport>  
    <configimportmapfile filename="FileMap.xml" />  
    </filesmapstoimport>  
    

    Node <cmtdatafiles>
    Node ini berisi array node <cmtdatafile> yang berisi versi lokal dari file data konfigurasi yang akan diimpor.

    Node <cmtdatafile>
    Gunakan node ini di bawah node <cmtdatafiles> untuk menentukan file data konfigurasi terlokalisasi bersama dengan ID lokal (diperlukan) dan file peta informasi pengguna (opsional). Misalnya:

    <cmtdatafiles>  
    <cmtdatafile filename="data_1033.zip" lcid="1033" usermapfilename="UserMap.xml" />  
    <cmtdatafile filename="data_1041.zip" lcid="1041" usermapfilename="" />  
    </cmtdatafiles>  
    

    Anda dapat menentukan logika kustom Anda dalam metode OverrideConfigurationDataFileLanguage (dijelaskan nanti) untuk mengimpor file data konfigurasi terlokalisasi dan bukan default (ditentukan di crmmigdataimportfile) berdasarkan nilai ID lokal (LCID) yang ditentukan menggunakan pengaturan runtime (dijelaskan nanti).

  2. Pilih Simpan Semua.

    XML berikut mewakili konten file sampel ImportConfig.xml .

    <?xml version="1.0" encoding="utf-16"?>  
    <configdatastorage xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"  
    xmlns:xsd="https://www.w3.org/2001/XMLSchema"  
    installsampledata="true"  
    waitforsampledatatoinstall="true"  
    agentdesktopzipfile=""  
    agentdesktopexename=""  
    crmmigdataimportfile="data_1033.zip">  
    <solutions>  
    <configsolutionfile solutionpackagefilename="SampleSolutionOne_1_0_managed.zip"  
    overwriteunmanagedcustomizations="false"  
    publishworkflowsandactivateplugins="true"/>  
    <configsolutionfile solutionpackagefilename="SampleSolutionTwo_1_0_managed.zip"  
    overwriteunmanagedcustomizations="false"  
    publishworkflowsandactivateplugins="true"/>  
    <configsolutionfile solutionpackagefilename="SampleSolutionThree_1_0_managed.zip" />  
    </solutions>  
    <filestoimport>  
    <configimportfile filename="SampleOption.csv"  
    filetype="CSV"  
    associatedmap="SampleOption"  
    importtoentity="sample_option"  
    datadelimiter=""  
    fielddelimiter="comma"  
    enableduplicatedetection="true"  
    isfirstrowheader="true"  
    isrecordownerateam="false"  
    owneruser=""  
    waitforimporttocomplete="false"/>  
    <configimportfile filename="File.zip"  
    filetype="ZIP"  
    associatedmap="FileMapName"  
    importtoentity="FileEntity"  
    datadelimiter=""  
    fielddelimiter="comma"  
    enableduplicatedetection="true"  
    isfirstrowheader="true"  
    isrecordownerateam="false"  
    owneruser=""  
    waitforimporttocomplete="true"/>  
    <zipimportdetails>  
    <zipimportdetail filename="subfile1.csv"  
    filetype="csv"  
    importtoentity="account" />  
    <zipimportdetail filename="subfile2.csv"  
    filetype="csv"  
    importtoentity="contact" />  
    </zipimportdetails>  
    </filestoimport>  
    <filesmapstoimport>  
    <configimportmapfile filename="SampleOption.xml" />  
    </filesmapstoimport>  
    <cmtdatafiles>  
    <cmtdatafile filename="data_1033.zip"  
    lcid="1033"  
    usermapfilename="UserMap.xml" />  
    <cmtdatafile filename="data_1041.zip"  
    lcid="1041"  
    usermapfilename="" />  
    </cmtdatafiles>  
    </configdatastorage>  
    
    

Tambahkan Kode kustom

Anda dapat menambahkan kode kustom yang dieksekusi sebelum, selama, dan setelah paket diimpor ke lingkungan. Untuk melakukannya, ikuti petunjuk berikut.

  1. Edit file PackageTemplate.cs (atau PackageImportExtension.cs) dalam folder root proyek.

  2. Di file C#, Anda dapat:

    1. Masukkan kode kustom untuk mengeksekusi saat paket diinisialisasi dalam definisi metode timpa InitializeCustomExtension.

      Metode ini dapat digunakan untuk memungkinkan pengguna menggunakan parameter runtime saat menjalankan sebuah paket. Sebagai pengembang, Anda dapat menambahkan dukungan untuk parameter runtime apa pun ke paket dengan menggunakan properti RuntimeSettings selama Anda memiliki kode untuk memprosesnya berdasarkan input pengguna.

      Contohnya, kode contoh berikut memungkinkan parameter runtime yang disebut SkipChecks untuk paket yang memiliki dua nilai yang mungkin: True atau false. Kode sampel memeriksa apakah pengguna telah menentukan parameter runtime apa pun saat menjalankan Package Deployer (baik menggunakan baris perintah atau PowerShell), lalu memproses informasi tersebut. Jika tidak ada parameter runtime yang ditentukan oleh pengguna saat menjalankan paket, nilai properti RuntimeSettings akan null.

      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");  
      }  
      

      Kode ini memungkinkan administrator menggunakan baris perintah atau impor-CrmPackage cmdlet untuk menentukan apakah akan melewati pemeriksaan keamanan saat menjalankan alat Package Deployer untuk mengimpor paket. Informasi lebih lanjut: Menyebarkan paket menggunakan Package Deployer dan Windows PowerShell

    2. Masukkan kode kustom untuk dieksekusi sebelum solusi diimpor dalam definisi metode timpa PreSolutionImport untuk menentukan apakah akan mempertahankan atau menimpa penyesuaian saat memperbarui solusi yang ditentukan dalam instans Dataverse target, dan apakah akan mengaktifkan plug-in dan alur kerja secara otomatis.

    3. Gunakan definisi metode penggantian untuk RunSolutionUpgradeMigrationStep melakukan transformasi data atau peningkatan antara dua versi solusi Metode ini hanya dipanggil jika solusi yang Anda impor sudah ada dalam instans target Dataverse .

      Fungsi ini memperkirakan parameter berikut:

      Parameter Deskripsi
      solutionName Nama solusi
      oldVersion Nomor versi solusi lama
      newVersion Nomor versi solusi baru
      oldSolutionId GUID solusi lama.
      newSolutionId GUID solusi baru.
    4. Masukkan kode kustom untuk mengeksekusi sebelum impor solusi selesai dalam definisi timpa metode BeforeImportStage. Data sampel dan beberapa file flat untuk solusi yang ditentukan dalam file ImportConfig.xml diimpor sebelum impor solusi selesai.

    5. Ganti bahasa yang saat ini dipilih untuk impor data konfigurasi menggunakan definisi metode penggantian dari OverrideConfigurationDataFileLanguage. Jika ID lokal (LCID) yang ditentukan dari bahasa yang ditentukan tidak ditemukan dalam daftar bahasa yang tersedia dalam paket, file data default akan diimpor.

      Anda menentukan bahasa yang tersedia untuk data konfigurasi di node <cmtdatafiles> dalam file ImportConfig.xml. File impor data konfigurasi default ditentukan di atribut crmmigdataimportfile dalam file ImportConfig.xml.

      Melewatkan pemeriksaan data (OverrideDataImportSafetyChecks = true) bisa efektif di sini jika Anda yakin bahwa instans target Dataverse tidak berisi data apa pun.

    6. Masukkan kode kustom untuk mengeksekusi setelah impor selesai dalam definisi timpa metode AfterPrimaryImport>. File datar yang tersisa yang tidak diimpor sebelumnya, sebelum impor solusi dimulai, diimpor sekarang.

    7. Ubah nama default folder paket Anda ke nama paket yang diinginkan. Untuk melakukannya, ganti nama PkgFolder (atau folder PkgAssets) di panel penelusur solusi, lalu Edit nilai kembali dalam properti 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. Ubah nama paket dengan mengedit nilai kembali dalam properti GetNameOfImport.

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

      Nilai yang dikembalikan ini adalah nama paket Anda yang muncul pada halaman pilihan paket di wizard Dynamics 365 Package Deployer .

    9. Ubah deskripsi paket dengan mengedit nilai kembali dalam properti GetImportPackageDescriptionText.

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

      Nilai yang dikembalikan ini adalah deskripsi paket yang muncul di samping nama paket pada halaman pemilihan paket dalam Package Deployer panduan.

    10. Ubah nama panjang paket dengan mengedit nilai kembali dalam properti GetLongNameOfImport.

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

      Nama panjang paket akan muncul di halaman berikutnya setelah Anda memilih paket yang akan diinstal.

  3. Selain itu, fungsi dan variabel berikut tersedia untuk paket:

    Nama Jenis Deskripsi
    CreateProgressItem(String) Function Digunakan untuk membuat item progres baru di antarmuka pengguna (UI).
    RaiseUpdateEvent(String, ProgressPanelItemStatus) Function Digunakan untuk memperbarui progres yang dibuat oleh panggilan ke CreateProgressItem(String).

    ProgressPanelItemStatus adalah enum dengan nilai berikut:

    Bekerja = 0
    Selesai = 1
    Gagal = 2
    Peringatan = 3
    Tidak diketahui = 4
    RaiseFailEvent(String, Exception) Function Digunakan untuk menggagalkan dalam impor status saat ini dengan pesan pengecualian.
    IsRoleAssoicatedWithTeam(Guid, Guid) Function Digunakan untuk menentukan apakah peran dikaitkan dengan tim tertentu.
    IsWorkflowActive(Guid) Function Digunakan untuk menentukan apakah alur kerja tertentu aktif.
    PackageLog Penunjuk kelas Penunjuk ke antarmuka log yang diinisialisasi untuk paket. Antarmuka ini digunakan oleh paket untuk mencatat pesan dan pengecualian ke file log paket.
    RootControlDispatcher Properti Antarmuka operator yang digunakan untuk memungkinkan kontrol Anda menyajikan antarmukanya sendiri selama penyebaran paket. Gunakan antarmuka ini untuk membungkus setiap perintah atau elemen UI. Penting untuk memeriksa variabel ini untuk nilai null sebelum menggunakannya karena mungkin tidak diatur ke nilai.
    CrmSvc Properti Penunjuk ke kelas CrmServiceClient yang memungkinkan paket ke alamat Dynamics 365 dari dalam paket. Gunakan penunjuk ini untuk menjalankan metode SDK dan tindakan lainnya dalam metode ditimpa.
    DataImportBypass Properti Tentukan apakah Package Deployer Dynamics 365 melompati semua operasi impor data seperti mengimpor data sampel Dataverse, data file datar, dan data yang diekspor dari Configuration Migration tool. Tentukan Benar atau Salah. Default-nya adalah false.
    OverrideDataImportSafetyChecks Properti Tentukan apakah Dynamics 365 Package Deployer melewati beberapa pemeriksaan keamanannya, yang membantu meningkatkan performa impor. Tetapkan true atau false. Default-nya adalah false.

    Anda harus mengatur properti ini hanya true jika instans target Dataverse tidak berisi data apa pun.
  4. Simpan proyek Anda. Langkah selanjutnya adalah membangun paket.

Bangun dan sebar

Bagian berikut menjelaskan cara membuat dan menyebarkan paket.

Buat

Membangun paket Anda dijelaskan di bawah ini tergantung pada alat mana yang Anda gunakan.

Untuk membangun paket yang dibuat dengan CLI, Anda dapat memuat file Visual Studio .csproj, tetapi sebaliknya kita akan menggunakan perintah dotnet dan MSBuild. Contoh di bawah ini mengasumsikan direktori kerja berisi file *.csproj.

> dotnet publish

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

Anda dapat melihat rincian paket yang telah dibuat secara opsional.

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

Paket Anda dibuat dari file berikut di dalam folder <Project>\Bin\Debug.

  • <Folder> PackageName: Nama folder sama dengan yang Anda ubah untuk nama folder paket di langkah 2.g bagian Menambahkan kode kustom. Folder ini berisi semua solusi, data konfigurasi, file datar, dan isi untuk paket Anda.

Catatan

Anda dapat melihat folder .NET (contoh: net472) yang berisi folder publikasi pdpublish. DLL Anda dan file proyek lainnya berada di folder pdpublish tersebut.

  • <PackageName>.dll: assembly ini berisi kode kustom untuk paket Anda. Secara default, nama unit sama dengan nama proyek Anda.

Sebarkan

Setelah membuat paket, Anda dapat menerapkannya pada instans Dataverse dengan menggunakan alat Package Deployer Windows PowerShell, atau perintah CLI.

  • Untuk menyebarkan menggunakan alat Package Deployer, unduh alat terlebih dahulu seperti dijelaskan dalam alat pengembangan Dataverse. Selanjutnya, ikuti informasi mendetail tentang penyebaran paket dalam artikel Menyebarkan paket menggunakan Package Deployer atau Windows PowerShell.

  • Untuk menyebarkan menggunakan CLI, gunakan perintah pac package deploy.

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

    Catatan

    Untuk menyebarkan paket ke lingkungan target menggunakan CLI, Anda harus terlebih dulu mengkonfigurasi profil otentikasi dan memilih organisasi. Informasi selengkapnya: pac auth create, pac org select

Praktik terbaik

Tercantum di bawah ini adalah beberapa tips praktik terbaik yang dapat diikuti saat bekerja dengan paket Package Deployer.

Membuat paket

Saat membuat paket, pengembang harus:

  • Pastikan asembli paket ditandatangani.

Menyebarkan paket

Saat menyebarkan paket, administrator Dataverse harus:

  • Menekankan pada asembli paket yang ditandatangani sehingga Anda dapat melacak asembli kembali ke sumbernya.
  • Uji paket pada instance praproduksi, sebaiknya gambar cermin instans produksi, sebelum menjalankannya pada instans produksi.
  • Buat cadangan instans produksi sebelum menyebarkan paket.

Lihat juga

Alat Pengemas Solusi