Pastaba.
Prieigai prie šio puslapio reikalingas įgaliojimas. Galite bandyti prisijungti arba pakeisti katalogus.
Prieigai prie šio puslapio reikalingas įgaliojimas. Galite bandyti pakeisti katalogus.
"SolutionPackager" yra įrankis, galintis grįžtamai suskaidyti "Microsoft Dataverse" suglaudinto sprendimo failą į kelis XML failus ir kitus failus. Tada galite lengvai tvarkyti šiuos failus naudodami šaltinio valdymo sistemą. Tolesniuose skyriuose aprašyta, kaip paleisti įrankį ir kaip naudoti įrankį su valdomaisiais ir nevaldomaisiais sprendimais.
Svarbu
"SolutionPackager" įrankis nebėra rekomenduojamas būdas išpakuoti ir supakuoti sprendimus. "SolutionPackager" įrankio galimybės yra įtrauktos į "Power Platform CLI". Komandoje pac solution yra daug veiksmažodžių, įskaitant unpack, pack, cloneir sync kurie apima tas pačias pagrindines SolutionPackager įrankio galimybes.
Kur ieškoti „SolutionPackager“ įrankio
SolutionPackager įrankis platinamas kaip „Microsoft“ dalis. CrmSdk.CoreTools NuGet paketas. Norėdami įdiegti programą, atlikite šiuos veiksmus.
- NuGet Atsisiųskite paketą.
- Pervardykite paketo failo pavadinimo plėtinį iš .nupkg į .zip.
- Išskleiskite suglaudinto (ZIP) failo turinį.
Raskite SolutionPackager.exe vykdomąjį failą aplanke <extracted-folder-name>/content/bin/coretools. Paleiskite programą iš coretools aplanko arba pridėkite tą aplanką prie savo PATH.
„SolutionPackager“ komandų eilutės argumentai
„SolutionPackager“ yra komandų eilutės įrankis, su kuriuo galima naudoti toliau pateiktoje lentelėje nurodytus parametrus.
| Argumentas | Aprašą |
|---|---|
| /veiksmas: Paketas {Extract|} | Būtina. Atliekamas veiksmas. Veiksmas gali būti sprendimo .zip failo išskleidimas aplanke arba aplanko supakavimas į .zip failą. |
| /zipfile: <failo kelias> | Būtina. Sprendimo. zip failo kelias ir pavadinimas. Išskleidžiant failą turi būti ir jis turi būti įskaitomas. Pakuojant, failas pakeičiamas. |
| /folder: <aplanko kelias> | Būtina. Kelias į aplanką. Išskleidžiant, šis aplankas sukuriamas ir užpildomas failais. Pakuojant, šis aplankas turi egzistuoti ir jame turi būti prieš tai gauti komponentų failai. |
| /packagetype: abu {Unmanaged|Managed|} | Pasirenkama. Apdorojamo proceso tipas. Numatytoji reikšmė yra „Nevaldomas“. Šį argumentą daugeliu atveju galima praleisti, nes paketo tipą galima nustatyti iš .zip failo arba komponento failų. Išskleidžiant ir nurodžius „Abu“, turi būti valdomojo ir nevaldomojo sprendimo .zip failai, kurie apdorojami viename aplanke. Kai pakuojama ir Abu yra nurodytas, valdomas ir nevaldomas sprendimas .zip failai gaminami iš vieno aplanko. Daugiau informacijos ieškokite tolesniame šio straipsnio skyriuje apie darbą su valdomaisiais ir nevaldomaisiais sprendimais. |
| /allowWrite:{Yes|No} | Pasirenkama. Numatytoji reikšmė yra Taip. Šis argumentas naudojamas tik išskleidžiant. Kai nurodyta /allowWrite:No, įrankis atlieka visas operacijas, bet negali rašyti arba panaikinti jokių failų. Skleidimo operacija gali būti patikimai atlikta neperrašant arba nepanaikinant esamų failų. |
| /allowDelete:{Yes|No|Raginimas} | Pasirenkama. Numatytoji reikšmė yra „Prompt“. Šis argumentas naudojamas tik išskleidžiant. Kai /allowDelete:Yes nurodyta, visi failai, esantys aplanke, nurodytame parametru /folder, kurių nesitikima, automatiškai panaikinami. Kai /allowDelete:Ne nurodyta, trynimai neįvyksta. Kai nurodyta /allowDelete:Prompt, vartotojas informuojamas konsolėje ir gali leisti arba uždrausti visus naikinimo veiksmus. Jei /allowWrite:No nurodyta, trynimai neįvyksta, net jei /allowDelete:Taip pat nurodyta. |
| /clobber | Pasirenkama. Šis argumentas naudojamas tik išskleidžiant. Kai nurodyta /clobber, failai, turintys sukonfigūruotą tik peržiūros atributą, yra perrašomi arba panaikinami. Jei nenurodyta, failai su tik skaitymo atributu nėra perrašomi ar panaikinami. |
| /errorlevel: {Off|Error|Warning|Info|Daugiažodis} | Pasirenkama. Numatytoji reikšmė yra „Informacija“. Šis argumentas nurodo išvedamos informacijos registravimo lygį. |
| /map: <failo kelias> | Pasirenkama. .xml failo, kuriame yra failo susiejimo direktyvos, kelias ir pavadinimas. Naudojant išskleidimo metu, failai, kurie yra paprastai skaitomi iš aplanko, nurodyto /folder parametru, nuskaitomi iš alternatyvių vietų nurodytų susiejimo faile. Pakavimo operacijos metu direktyvas atitinkantys failai neįrašomi. |
| /nologo | Pasirenkama. Vykdymo metu nerodyti juostos. |
| /log: <failo kelias> | Pasirenkama. Žurnalo failo kelias ir pavadinimas. Jei failas jau yra, nauja registracijos informacija pridedama prie failo. |
| @ <failo kelias> | Pasirenkama. Failo, kuriame yra įrankio komandų eilutės argumentai, kelias ir vardas. |
| /sourceLoc: <eilutė> | Pasirenkama. Šis argumentas generuoja šablono ištekliaus failą ir galioja tik išskleidžiant. Galimos reikšmės yra auto arba kalbos, kurią norite eksportuoti, LCID/ISO kodas. Naudojant šį argumentą, eilutės ištekliai iš nurodytos lokalės išskleidžiami kaip neutralus .resx failas. Jei nurodyta auto arba tik ilga ar trumpa jungiklio forma, naudojama bazinė lokalė arba sprendimas. Galite naudoti trumpą komandos formą: /src. |
| /localize | Pasirenkama. Visus eilutės išteklius išskleisti arba sulieti į .resx failus. Galite naudoti trumpą komandos formą: /loc. Lokalizavimo parinktis palaiko .resx failų bendrai naudojamus komponentus. Daugiau informacijos: RESX žiniatinklio išteklių naudojimas |
| /SolutionName: <pavadinimas> | Pasirenkama. Unikalus sprendimo, kurį reikia supakuoti arba išskleisti, pavadinimas, kai šaltinio aplanke yra keli sprendimai dalyje solutions/*/solution.yml. Reikalinga, kai aptinkamas daugiau nei vienas tirpalas. Taikoma tik YAML šaltinio valdiklio formatui. Galite naudoti trumpą komandos formą: /sn. |
| /remapPluginTypeNames | Pasirenkama. Nurodžius, visiškai kvalifikuoti priedų tipų pavadinimai perskirstomi pagal į sprendimą įtrauktus rinkinius. Pagal numatytuosius nustatymus įjungta YAML šaltinio valdiklio formate. Galite naudoti trumpą komandos formą: /fp. |
Šaltinio kontrolės failų formatai
"SolutionPackager" palaiko du aplankų išdėstymus ištraukiant ir pakuojant sprendimus.
XML formatas (senesnis)
Originalus formatas. Sprendimo metaduomenys saugomi Other\Solution.xml ir Other\Customizations.xml, o visi komponentų failai kartu su tais failais išskleidžiami į plokščią aplankų hierarchiją. Šis formatas yra numatytasis formatas .zip išskleidžiant failą be papildomos konfigūracijos.
YAML šaltinio valdiklio formatas
Šis formatas, pristatytas kartu su "Dataverse Git" integracija, saugo sprendimo metaduomenis kaip YAML failus, paskirstytus struktūrizuotoje aplankų hierarchijoje. Tai formatas, parašytas, kai atliekate sprendimus naudodami vietinį "Git" integravimą į "Power Apps".
Privalumai prieš XML formatą
- Sukuria švaresnius, lengviau skaitomus kiekvieno komponento skirtumus šaltinio valdyme
- Palaiko kelis sprendimus viename saugyklos aplanke
- Drobės programos
.msappfailai ir šiuolaikiniai srautai palaikomi tik šiuo formatu - Priedo tipo pavadinimo pertvarkymas įjungtas pagal numatytuosius nustatymus
Reikalinga aplanko struktūra
<rootFolder>/
├── solutions/
│ └── <SolutionUniqueName>/
│ ├── solution.yml (solution metadata)
│ ├── solutioncomponents.yml (paths to all component files)
│ ├── rootcomponents.yml (root-level components)
│ └── missingdependencies.yml (dependency info)
├── publishers/
│ └── <PublisherUniqueName>/
│ └── publisher.yml (publisher definition)
├── entities/ (entity components, if present)
├── workflows/ (classic workflows, if present)
├── modernflows/ (Power Automate cloud flows, if present)
├── canvasapps/ (canvas app .msapp files, if present)
└── [other component folders]/
Svarbu
YAML formatas automatiškai aptinkamas esant poaplankiui, solutions/ kuriame yra *solution.yml failai.
Jei jūsų YAML deklaracijos failai (solution.yml, ir t. t.) yra aplanko šaknyje, solutioncomponents.ymlo ne po solutions/<SolutionUniqueName>/, įrankis neaptinka YAML formato. Įrankis grįžta į XML kelią ir praneša apie klaidinančią klaidą apie trūkstamą Customizations.xml. Informacijos apie tai, kaip išspręsti šią problemą, ieškokite Trikčių šalinimas .
Daugiau informacijos: Sprendimo YAML šaltinio valdiklio formato nuoroda
Formatuoti automatinio aptikimo taisykles
| Sąlyga | Naudotas formatas |
|---|---|
solutions/*/solution.yml rasta – lygiai vienas sprendimas |
YAML formatas, kai sprendimo pavadinimas nustatomas iš aplanko |
solutions/*/solution.yml rasta – keli sprendimai |
YAML formatas, kur reikalingas argumentas /SolutionName |
Nėra solutions/ pakatalogio |
XML formatas (senesnis) |
YAML formato aplanko pakavimas
Ši komanda supakuoja YAML formato aplanką.
SolutionPackager.exe /action:Pack /zipfile:MySolution.zip /folder:C:\repos\myrepo
Pakavimas iš kelių sprendimų aplanko
Ši komanda supakuoja nurodytą sprendimą į kelių sprendimų aplanką.
SolutionPackager.exe /action:Pack /zipfile:SolutionA.zip /folder:C:\repos\myrepo /SolutionName:SolutionA
/map komandos argumento naudojimas
Toliau aptarta, kaip naudoti /map argumentą su „SolutionPackager“ įrankiu.
Failai, sukurti naudojant automatinio kūrimo sistemą, pvz., .xap „Silverlight“ failai ir priedų rinkiniai, paprastai neregistruojami pirminio teksto valdymo sistemoje. Žiniatinklio ištekliai jau gali būti šaltinio valdiklyje vietose, kurios nėra tiesiogiai suderinamos su "SolutionPackager" įrankiu. Įtraukus parametrą /map, „SolutionPackager“ įrankis gali būti nukreiptas, kad skaitytų ir pakuotų tokius failus iš alternatyvių vietų, o ne iš išskleidimo aplanko, kaip tai daroma įprastai. Parametras /map turi nurodyti XML failo, kuriame yra susiejimo direktyvų, pavadinimą ir kelią. Šios direktyvos nurodo SolutionPackager suderinti failus pagal jų pavadinimą ir kelią bei nurodyti alternatyvią vietą, kur rasti suderintą failą. Toliau pateikta informacija vienodai taikoma visoms sąlygoms.
Gali būti išvardytos kelios direktyvos, įskaitant tas direktyvas, kurios atitinka identiškus failus. Direktyvos, išvardytos dokumento pradžioje, turi viršenybę prieš vėliau išvardytas direktyvas.
Jei failas yra atitinka bet kurią sąlygą, jis turi būti randamas bent vienoje alternatyvioje vietoje. Jei nerandama atitinkančių alternatyvų, SolutionPackager pateikia klaidą.
Aplanko ir failo keliai gali būti absoliutūs arba santykiniai. Santykiniai keliai visada gaunami pagal aplanką, nurodytą naudojant parametrą /folder.
Aplinkos kintamuosius galima nurodyti naudojant %variable% sintaksę.
Aplanko pakaitos simbolis "**" gali būti naudojamas "bet kuriame poaplankyje". Jis gali būti naudojamas tik kaip paskutinė kelio dalis, pavyzdžiui: "c:\folderA\**".
Failo vardo pakaitos simboliai gali būti naudojami tik formose "*.ext" arba "*.*". Nepalaikomas jos kitas šablonas.
Čia aprašyti trijų tipų sąlygų susiejimai ir pateiktas pavyzdys, rodantis, kaip juos naudoti.
Aplanko susiejimas
Šioje informacijoje pateikiama išsami informacija apie aplankų susiejimą.
XML formatas
<Folder map="folderA" to="folderB" />
Aprašas
Failų keliai, atitinkantys "folderA", perjungiami į "folderB".
Visų poaplankių hierarchijos turi tiksliai sutapti.
Aplankų pakaitos simboliai nepalaikomi.
Negalima nurodyti failų vardų.
Pavyzdžiai
<Folder map="folderA" to="folderB" /> <Folder map="folderA\folderB" to="..\..\folderC\" /> <Folder map="WebResources\subFolder" to="%base%\WebResources" />
Failo susiejimas su failu
Toliau pateikta informacija suteikia daugiau informacijos apie failų susiejimą.
XML formatas
<FileToFile map="path\filename.ext" to="path\filename.ext" />
Aprašas
Bet koks failas, atitinkantis parametrą, map skaitomas iš parametre to nurodyto pavadinimo ir kelio.
Parametras map:
Turi būti nurodytas failo vardas. Kelias yra pasirinktinis. Jei kelias nenurodytas, gali būti susieti failai iš bet kurio aplanko.
Failo vardo pakaitos simboliai nepalaikomi.
Palaikomi aplanko pakaitos simboliai.
Parametras
to:Turi būti nurodytas failo vardas ir kelias.
Failo vardas gali skirtis nuo parametro
mapvardo.Failo vardo pakaitos simboliai nepalaikomi.
Palaikomi aplanko pakaitos simboliai.
Pavyzdžiai
<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" />
Aukščiau pateiktame NuGet paketo pavyzdyje cr886_PluginPackageTest.nupkg neperrašomas, jei failas jau yra nurodytoje vietoje.
Failo susiejimas su keliu
Toliau pateikta išsami informacija apie failo susiejimą su keliu.
XML formatas
<FileToPath map="path\filename.ext" to="path" />
Aprašas
Bet kuris failas, atitinkantis parametrą map, bus nuskaitomas naudojant kelią, nurodytą parametre to.
Parametras map:
Turi būti nurodytas failo vardas. Kelias yra pasirinktinis. Jei kelias nenurodytas, gali būti susieti failai iš bet kurio aplanko.
Failo vardo pakaitos simboliai palaikomi.
Palaikomi aplanko pakaitos simboliai.
Parametras to:
Turi būti nurodytas kelias.
Palaikomi aplanko pakaitos simboliai.
Failo vardas negali būti nurodytas.
Pavyzdžiai
<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" />
Susiejimo pavyzdys
Toliau esančiame XML kodo pavyzdyje pateiktas visas susiejimo failas, leidžiantis „SolutionPackager“ įrankiui nuskaityti bet kurį žiniatinklio išteklių ir du numatytuosius sugeneruotus rinkinius iš kūrėjo įrankių rinkinio projekto, pavadinto 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>
Valdomieji ir nevaldomieji sprendimai
„Dataverse“ suglaudinto sprendimo (.zip) failą galima eksportuoti, kaip pavaizduota, pasirinkus vieną iš dviejų tipų.
Valdomasis sprendimas
Baigtas sprendimas, paruoštas importuoti į organizaciją. Importavus komponentų negalima įtraukti ar pašalinti, nors pasirinktinai jie gali leisti toliau tinkinti. Tai daryti rekomenduojama, kai sprendimo kūrimas baigtas.
Nevaldomasis sprendimas
Atviras sprendimas be apribojimų, ką galima įtraukti, pašalinti ar modifikuoti. Rekomenduojama naudoti kuriant sprendimą.
Suglaudinto sprendimo failo formatas bus skirtingas, atsižvelgiant į tipą, t. y. valdomąjį arba nevaldomąjį. „SolutionPackager“ gali apdoroti bet kokio tipo suglaudintų sprendimų failus. Tačiau įrankis negali konvertuoti vieno tipo į kitą. Vienintelis būdas konvertuoti sprendimo failus į kitą tipą, pvz., iš nevaldomojo į valdomąjį, yra importuoti nevaldomojo sprendimo .zip failą į „Dataverse“ serverį, o tada eksportuoti sprendimą kaip valdomąjį sprendimą.
Naudojant parametrą /PackageType:Both, „SolutionPackager“ gali apdoroti nevaldomųjų ir valdomųjų sprendimų .zip failus kaip rinkinį. Norint atlikti šią operaciją, skirtingo tipo sprendimą reikia eksportuoti du kartus, suteikiant .zip failams nurodytus pavadinimas.
Nevaldomojo sprendimo .zip failas: AnyName.zip
Valdomojo sprendimo .zip failas: AnyName_managed.zip
Įrankis remsis prielaida, kad valdomojo sprendimo .zip failai yra tame pačiame aplanke kaip ir nevaldomojo sprendimo, ir išskleis abu failus į vieną aplanką, išsaugant skirtumus, kai yra valdomieji ir nevaldomieji komponentai.
Išskleidus sprendimą kaip nevaldomąjį ir valdomąjį, naudojant parametrą /PackageType, kuriame nurodoma, kokį tipą sukurti, šiame vieninteliame aplanke galima supakuoti abu kartu arba atskirai pagal tipą. Nurodant abu failus, du .zip failai bus sukurti naudojant pavadinimų suteikimo konvenciją, kaip nurodyta aukščiau. Jei parametro /PackageType nėra, pakuojant dvigubame valdomojo ir nevaldomojo sprendimo aplanke, standartiškai sukuriamas vienas nevaldomasis .zip failas.
Trikčių šalinimas
Pranešimas, rodomas naudojant "Visual Studio" išteklių failams redaguoti
Jei naudojate Visual Studio sprendimų paketo sukurtoms išteklių saugykloms redaguoti, perpakuodami galite gauti panašų pranešimą: "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." Taip atsitinka todėl, kad Visual Studio pakeičia išteklių failo metaduomenų žymes duomenų žymėmis.
Alternatyvus sprendimas
Atidarykite ištekliaus failą savo mėgstamiausioje teksto rengyklėje ir suraskite bei atnaujinkite šias žymes:
<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">Mazgo pavadinimą pakeiskite iš
<data>į<metadata>.Pavyzdžiui, ši eilutė:
<data name="Source LCID" xml:space="preserve"> <value>1033</value> </data>Pakeičiama į:
<metadata name="Source LCID" xml:space="preserve"> <value>1033</value> </metadata>Tokiu būdu sprendimų pakavimo įrankis galės perskaityti ir importuoti ištekliaus failą. Ši problema buvo pastebėta tik naudojant "Visual Studio" išteklių rengyklę.
Klaida: "Nepavyko rasti reikiamo failo ...\Other\Customizations.xml" su YAML aplanku
Ši klaida atsiranda, kai paleidžiate SolutionPackager (arba pac solution pack) aplanke, kuriame yra YAML failai, pvz. solution.yml, , bet tie failai dedami aplanko šaknyje, o ne reikiamame solutions/<SolutionUniqueName>/ poaplankyje.
Priežastis: Įrankis aptinka YAML šaltinio valdymo formatą ieškodamas poaplankio, solutions/ kuriame yra *solution.yml failai. Kai to katalogo nėra, įrankis tyliai grįžta į XML (seną) formatą ir tikisi Other\Customizations.xml. Gautas klaidos pranešimas nurodo XML failą ir nemini YAML, o tai yra klaidinanti.
Pataisymas: Pertvarkykite aplanką taip, kad YAML deklaracijos failai būtų teisingais keliais:
<rootFolder>/
solutions/<YourSolutionUniqueName>/ ← move solution.yml here
solution.yml
solutioncomponents.yml
rootcomponents.yml
missingdependencies.yml
publishers/<YourPublisherUniqueName>/
publisher.yml
Jei aplanką gavote iš "Git" integravimo įsipareigojimo arba pac solution clone, aplanko struktūra jau turėtų būti teisinga. Aplankas, kuriame yra tik aukščiausio lygio YAML failai be pakatalogio, solutions/ yra neišsamus išrašas ir jo negalima supakuoti tiesiogiai.
Įspėjimas: rootcomponents.yml deklaruotas komponentas neturi šaltinio failų
Šis įspėjimas rodomas, kai komponentas, pvz., drobės programa, yra sąraše rootcomponents.yml , bet numatomame komponento aplanke nėra atitinkamų šaltinio failų (pvz., canvasapps/<schema-name>/).
Poveikis: Įrankis vis tiek sėkmingai veikia (išėjimo kodas 0) ir sukuria galiojantį .zip failą, tačiau deklaruotas komponentas neįtrauktas į supakuotą sprendimą.
Priežastis: Aplankas buvo sukurtas naudojant dalinį išskleidimą arba komponento šaltinio failai nebuvo įtraukti į saugyklą. Pavyzdžiui, buvo patvirtinti tik sprendimo deklaracijos failai, o ne pati drobės programa.
Pataisymas: Įsitikinkite, kad visi deklaruoti rootcomponents.yml komponentai turi atitinkamus šaltinio failus aplanke. Drobės programų failas .msapp turi būti dalyje canvasapps/<schema-name>/. Jei trūksta failų, iš naujo eksportuokite visą sprendimą iš "Dataverse" ir išpakuokite jį dar kartą arba naudokite pac solution clone , kad gautumėte išsamų išrašą.