Alat SolutionPackager
SolutionPackager ialah alat yang boleh menguraikan Microsoft Dataverse fail penyelesaian termampat secara terbalik kepada berbilang fail XML dan fail lain. Anda kemudiannya boleh mengurus fail ini dengan mudah dengan menggunakan sistem kawalan sumber. Seksyen berikut menunjukkan anda cara untuk menjalankan alat dan cara untuk menggunakan alat dengan penyelesaian terurus dan tidak terurus.
Penting
Alat SolutionPackager bukan lagi cara yang disyorkan untuk membongkar dan membungkus penyelesaian. Keupayaan alat SolutionPackager telah dimasukkan ke dalam Power Platform CLI. Perintah ini pac solution
mempunyai beberapa kata kerja termasuk unpack
, pack
, clone
, dan sync
yang menggabungkan keupayaan asas yang sama bagi alat SolutionPackager.
Tempat untuk mencari alat SolutionPackager
Alat SolutionPackager diedarkan sebagai sebahagian daripada Microsoft. CrmSdk.CoreTools NuGet dipadan. Untuk memasang program, ikuti langkah berikut.
- Muat turun pakej NuGet .
- Namakan semula sambungan nama fail pakej daripada .nupkg kepada .zip.
- Ekstrak kandungan fail termampat (zip).
Cari SolutionPackager.exe boleh laku dalam folder extracted-folder-name <>/contents/bin/coretools. Jalankan program daripada folder coretools atau tambahkan folder itu ke PATH anda.
SolutionPackager argumen baris perintah
SolutionPackager ialah alat baris arahan yang boleh diaktifkan dengan parameter yang dikenal pasti dalam jadual berikut.
Argumen | Description |
---|---|
/action: {Extract|Pack} | Diperlukan. Tindakan untuk melaksanakan. Tindakan itu boleh sama ada untuk mengekstrak fail .zip penyelesaian ke folder, atau untuk pek folder ke dalam fail .zip. |
/zipfile: <laluan fail> | Diperlukan. Laluan dan nama fail .zip penyelesaian. Apabila mengekstrak, fail mesti wujud dan boleh dibaca. Apabila pemadatan, fail tersebut digantikan. |
/folder: <laluan folder> | Diperlukan. Laluan ke folder. Apabila mengekstrak, folder ini dicipta dan diisi dengan fail komponen. Apabila pemadatan, folder ini mesti sudah wujud dan mengandungi fail komponen yang diekstrak sebelum ini. |
/packagetype: {Unmanaged|Managed|Both} | Tidak wajib Jenis pakej untuk diproses. Nilai lalai ialah Tidak Terurus. Argumen ini mungkin akan ditinggalkan dalam kebanyakan keadaan kerana jenis pakej boleh dibaca daripada dalam fail .zip atau fail komponen. Apabila mengekstrak dan Kedua-duanya ditetapkan, fail .zip penyelesaian terurus dan tidak terurus mesti wujud dan diproses ke dalam folder tunggal. Apabila pembungkusan dan Kedua-duanya ditentukan, fail .zip penyelesaian terurus dan tidak terurus dihasilkan daripada satu folder. Untuk maklumat lanjut, lihat bahagian tentang bekerja dengan penyelesaian terurus dan tidak terurus kemudian dalam artikel ini. |
/allowWrite:{Yes|No} | Tidak wajib Nilai lalai ialah Ya. Argumen ini hanya digunakan semasa pengekstrakan. Apabila /allowWrite:Tidak ditetapkan, alat ini melaksanakan semua operasi tetapi dihalang daripada menulis atau memadamkan sebarang fail. Operasi ekstrak boleh dinilaikan dengan selamat tanpa menulis ganti atau memadamkan sebarang fail sedia ada. |
/allowDelete:{Yes|No|Prompt} | Tidak wajib Nilai lalai ialah Gesaan. Argumen ini hanya digunakan semasa pengekstrakan. Apabila /allowDelete:Ya ditentukan, sebarang fail yang terdapat dalam folder yang ditentukan oleh parameter /folder yang tidak dijangka dipadamkan secara automatik. Apabila /allowDelete:No ditentukan, tiada pemadaman berlaku. Apabila /allowDelete:Gesaan ditetapkan, pengguna akan digesa melalui konsol untuk membenarkan atau menafikan semua operasi memadam. Jika /allowWrite:No ditentukan, tiada pemadaman berlaku walaupun /allowDelete:Yes juga ditentukan. |
/bantai | Tidak wajib Argumen ini hanya digunakan semasa pengekstrakan. Apabila /bantai ditetapkan, fail yang mempunyai set atribut baca sahaja telah ditulis ganti atau dipadamkan. Apabila tidak ditetapkan, fail yang mempunyai set atribut baca sahaja tidak ditulis ganti atau dipadamkan. |
/errorlevel: {Off|Error|Warning|Info|Verbose} | Tidak wajib Nilai lalai ialah Maklumat. Argumen ini menunjukkan tahap maklumat pengelogan untuk output. |
/map: <laluan fail> | Tidak wajib Laluan dan nama fail .xml mengandungi fail arahan pemetaan. Apabila digunakan semasa pengekstrakan, fail biasanya membaca daripada dalam folder yang ditentukan oleh parameter /folder dibaca daripada lokasi alternatif seperti yang ditentukan dalam fail pemetaan. Semasa operasi pek, fail yang sepadan dengan arahan tidak ditulis. |
/nologo | Tidak wajib Menyekat sepanduk pada masa jalanan. |
/log: <laluan fail> | Tidak wajib Laluan dan nama kepada fail log. Jika fail sudah wujud, maklumat pengelogan baharu ditambah kepada fail. |
@ <laluan fail> | Tidak wajib Laluan dan nama kepada fail yang mengandungi argumen baris perintah untuk alat. |
/sourceLoc: <rentetan> | Tidak wajib Argumen ini menjana fail sumber templat, dan hanya sah pada ekstrak. Nilai yang mungkin adalah auto atau kod LCID/ISO untuk bahasa yang anda mahu eksport. Apabila argumen ini digunakan, sumber rentetan daripada tempat yang diberikan diekstrak sebagai fail .resx neutral. Jika auto atau hanya borang panjang atau ringkas suis ditentukan, tempat asas atau penyelesaian digunakan. Anda boleh menggunakan borang ringkas perintah: /src. |
/setempatkan | Tidak wajib Ekstrak atau gabung semua sumber rentetan ke dalam fail .resx. Anda boleh menggunakan borang ringkas perintah: /loc. Pilihan setempatkan menyokong komponen dikongsi untuk fail .resx. Maklumat lanjut: Menggunakan sumber web RESX |
Gunakan argumen perintah /peta
Perbincangan berikut butiran penggunaan argumen /peta kepada alat SolutionPackager.
Fail yang dibina dalam sistem binaan automatik seperti fail .xap Silverlight dan himpunan pasang masuk, biasanya tidak diperiksa ke dalam kawalan sumber. Sumber web mungkin sudah hadir dalam kawalan sumber di lokasi yang tidak serasi secara langsung dengan alat SolutionPackager. Dengan memasukkan parameter /peta, alat SolutionPackager boleh diarahkan untuk membaca dan pakej fail tersebut dari lokasi alternatif dan tidak daripada dalam folder Ekstrak seperti biasa dilakukan. Parameter /map mesti menentukan nama dan laluan ke fail XML yang mengandungi arahan pemetaan. Arahan tersebut mengarahkan SolutionPackager untuk memadankan fail mengikut nama dan laluannya, dan menunjukkan lokasi alternatif untuk mencari fail yang dipadankan. Maklumat berikut digunakan untuk semua arahan yang sama.
Pelbagai arahan boleh disenaraikan termasuk arahan yang sepadan dengan fail yang sama. Arahan yang disenaraikan pada awal fail diutamakan daripada arahan yang disenaraikan kemudian.
Jika fail dipadankan dengan sebarang arahan, ia mesti ditemui dalam sekurang-kurangnya satu lokasi alternatif. Jika tiada alternatif yang sepadan ditemui, SolutionPackager mengeluarkan ralat.
Laluan folder dan fail mungkin mutlak atau relatif. Laluan relatif sentiasa dinilai daripada folder yang ditentukan oleh parameter /folder.
Pemboleh ubah persekitaran mungkin ditentukan dengan menggunakan sintaks %variable%.
Kad bebas folder "**" boleh digunakan untuk bermaksud "dalam mana-mana subfolder". Ia hanya boleh digunakan sebagai bahagian akhir laluan, contohnya: "c:\folderA\"**.
Kad bebas nama fail hanya boleh digunakan dalam borang “*.ext” or “*.*”. Tiada corak yang lain disokong.
Tiga jenis arahan pemetaan diterangkan di sini, bersama dengan contoh yang menunjukkan anda cara menggunakannya.
Pemetaan folder
Maklumat berikut menyediakan maklumat terperinci tentang pemetaan folder.
Xml Format
<Folder map="folderA" to="folderB" />
Perihalan
Laluan fail yang sepadan dengan "folderA" ditukar kepada "folderB".
Hierarki subfolder di bawah setiap satu mesti dipadankan dengan tepat.
Kad bebas folder tidak disokong.
Tiada nama fail boleh ditentukan.
Contoh
<Folder map="folderA" to="folderB" /> <Folder map="folderA\folderB" to="..\..\folderC\" /> <Folder map="WebResources\subFolder" to="%base%\WebResources" />
Fail Kepada pemetaan fail
Maklumat berikut memberikan butiran lanjut tentang pemetaan fail ke fail.
Xml Format
<FileToFile map="path\filename.ext" to="path\filename.ext" />
Perihalan
Mana-mana fail yang sepadan dengan map
parameter dibaca daripada nama dan laluan yang dinyatakan dalam to
parameter.
Untuk parameter map
:
Nama fail mesti ditentukan. Laluan ialah pilihan. Jika tiada laluan yang ditetapkan, fail dari sebarang folder mungkin dipadankan.
Kad bebas nama fail tidak disokong.
Kad liar folder yang disokong.
Untuk parameter
to
:Nama fail dan laluan mesti ditentukan.
Nama fail mungkin berbeza daripada nama dalam parameter
map
.Kad bebas nama fail tidak disokong.
Kad liar folder yang disokong.
Contoh
<FileToFile map="assembly.dll" to="c:\path\folder\assembly.dll" />
<FileToFile map="PluginAssemblies\**\this.dll" to="..\..\Plugins\**\that.dll" />
<FileToFile map="Webresrouces\ardvark.jpg" to="%SRCBASE%\CrmPackage\WebResources\JPG format\aardvark.jpg" />
<FileToFile
map="pluginpackages\cr886_PluginPackageTest\package\cr886_PluginPackageTest.nupkg"
to="myplg\bin\Debug\myplg.1.0.0.nupkg" />
Dalam contoh pakej di atas NuGet , cr886_PluginPackageTest.nupkg tidak ditulis ganti jika fail sudah wujud di lokasi yang ditentukan.
Fail kepada laluan pemetaan
Berikut memberikan maklumat terperinci pada pemetaan fail kepada laluan.
Xml Format
<FileToPath map="path\filename.ext" to="path" />
Perihalan
Sebarang fail yang sepadan dengan parameter map
ialah dibaca daripada laluan yang ditentukan dalam parameter to
.
Untuk parameter map
:
Nama fail mesti ditentukan. Laluan ialah pilihan. Jika tiada laluan yang ditetapkan, fail dari sebarang folder mungkin dipadankan.
Nama fail kad liar yang disokong.
Kad liar folder yang disokong.
Untuk parameter to
:
Laluan mesti ditentukan.
Kad liar folder yang disokong.
Nama fail tidak boleh ditentukan.
Contoh
<FileToPath map="assembly.dll" to="c:\path\folder" />
<FileToPath map="PluginAssemblies\**\this.dll" to="..\..\Plugins\bin\**" />
<FileToPath map="*.jpg" to="%SRCBASE%\CrmPackage\WebResources\JPG format\" />
<FileToPath map="*.*" to="..\..\%ARCH%\%TYPE%\drop" />
Contoh pemetaan
Sampel kod XML berikut menunjukkan fail pemetaan lengkap yang mendayakan alat SolutionPackager untuk membaca sebarang sumber web dan dua himpunan yang dijana lalai daripada projek Toolkit Pemaju yang bernama CRMDevTookitSample.
<?xml version="1.0" encoding="utf-8"?>
<Mapping>
<!-- Match specific named files to an alternate folder -->
<FileToFile map="CRMDevTookitSamplePlugins.dll" to="..\..\Plugins\bin\**\CRMDevTookitSample.plugins.dll" />
<FileToFile map="CRMDevTookitSampleWorkflow.dll" to="..\..\Workflow\bin\**\CRMDevTookitSample.Workflow.dll" />
<!-- Match any file in and under WebResources to an alternate set of subfolders -->
<FileToPath map="WebResources\*.*" to="..\..\CrmPackage\WebResources\**" />
<FileToPath map="WebResources\**\*.*" to="..\..\CrmPackage\WebResources\**" />
</Mapping>
Penyelesaian yang terurus dan tidak terurus
Fail (.zip) penyelesaian mampat Dataverse boleh dieksport ke dalam satu daripada dua jenis seperti yang ditunjukkan di sini.
penyelesaian terurus
Penyelesaian yang lengkap bersedia untuk diimport ke dalam organisasi. Sebaik sahaja diimport, komponen tidak boleh ditambah atau dikeluarkan, walaupun mereka boleh secara pilihan membenarkan penyesuaian lanjut. Ini disyorkan apabila pembangunan penyelesaian selesai.
Penyelesaian tidak terurus
Penyelesaian terbuka tanpa sekatan ke atas apa yang boleh ditambah, dikeluarkan atau diubah suai. Ini disyorkan semasa pembangunan penyelesaian.
Format fail penyelesaian mampat akan berbeza berdasarkan jenis, sama ada terurus atau tidak terurus. SolutionPackager boleh memproses fail penyelesaian mampat daripada kedua-dua jenis. Walau bagaimanapun, alat ini tidak boleh menukar satu jenis kepada yang lain. Satu-satunya cara untuk menukar fail penyelesaian kepada jenis yang berbeza, sebagai contoh daripada tidak terurus kepada terurus, ialah dengan mengimport fail .zip penyelesaian yang tidak terurus ke dalam pelayan Dataverse dan kemudian mengeksport penyelesaian sebagai penyelesaian terurus.
SolutionPackager boleh memproses fail .zip penyelesaian tidak terurus dan terurus sebagai gabungan ditetapkan melalui /PackageType:Kedua-dua parameter. Untuk melaksanakan operasi ini, adalah perlu untuk mengeksport penyelesaian anda dua kali kerana setiap jenis, menamakan fail .zip seperti berikut.
Fail .zip tidak terurus: AnyName.zip | Fail .zip terurus: AnyName_managed.zip |
Alat ini akan mengandaikan kehadiran fail zip terurus dalam folder yang sama sebagai fail tidak terurus dan mengekstrak kedua-dua fail ke dalam folder tunggal mengekalkan perbezaan di mana komponen terurus dan tidak terurus wujud.
Selepas penyelesaian telah diekstrak sebagai kedua-duanya tidak terurus dan terurus, ada kemungkinan daripada folder tunggal itu kepada kedua-dua pek, atau setiap jenis secara individu, menggunakan parameter /PackageType untuk menentukan jenis yang mana untuk dicipta. Apabila menentukan kedua-dua fail, dua fail .zip akan dihasilkan menggunakan konvensyen penamaan seperti di atas. Jika parameter /PackageType tidak ditemui apabila pemadatan dari folder yang terurus dan tidak terurus, lalai ialah menghasilkan fail .zip tidak terurus tunggal.
Penyelesaian masalah
Jika anda menggunakan Visual Studio untuk mengedit fail sumber yang dicipta oleh pempakej penyelesaian, anda mungkin menerima mesej apabila anda pek semula sama seperti ini: “Failed to determine version id of the resource file <filename>.resx the resource file must be exported from the solutionpackager.exe tool in order to be used as part of the pack process.”
Ini berlaku kerana Visual Studio menggantikan tag metadata fail sumber dengan tag data.
Penyelesaian sementara
Buka fail sumber dalam editor teks kegemaran anda dan cari dan kemas kini tag berikut:
<data name="Source LCID" xml:space="preserve"> <data name="Source file" xml:space="preserve"> <data name="Source package type" xml:space="preserve"> <data name="SolutionPackager Version" mimetype="application/x-microsoft.net.object.binary.base64">
Tukar nama nod daripada
<data>
kepada<metadata>
.Contohnya, rentetan ini:
<data name="Source LCID" xml:space="preserve"> <value>1033</value> </data>
Perubahan kepada:
<metadata name="Source LCID" xml:space="preserve"> <value>1033</value> </metadata>
Ini membenarkan pempakej penyelesaian untuk membaca dan mengimport fail sumber. Masalah ini hanya akan diperhatikan apabila menggunakan editor Sumber Visual Studio.
Lihat juga
Gunakan Kawalan Sumber dengan Fail Penyelesaian
Konsep penyelesaian