Märkus.
Juurdepääs sellele lehele nõuab autoriseerimist. Võite proovida sisse logida või kausta vahetada.
Juurdepääs sellele lehele nõuab autoriseerimist. Võite proovida kausta vahetada.
SolutionPackager on tööriist, mis suudab pöörduvalt lagundada Microsoft Dataverse'i tihendatud lahendusfaili mitmeks XML-failiks ja muuks failiks. Seejärel saate neid faile hõlpsalt hallata versioonikontrollisüsteemi abil. Järgmistes jaotistes selgitatakse, kuidas tööriista käitada ja kuidas tööriista hallatavate ja mittehallatavate lahendustega kasutada.
Oluline
Lahenduste pakkimiseks ja lahtipakkimiseks ei ole enam soovitatav tööriist SolutionPackager. SolutionPackageri tööriista võimalused on integreeritud Power Platform CLI-sse. Käsul pac solution on palju tegusõnu, sealhulgas unpack, pack, clone, ja sync mis sisaldavad samu aluseks olevaid võimeid nagu SolutionPackager tööriistal.
Lahendusepakkija tööriista otsimine
SolutionPackager tööriist on levitatud osana Microsoft süsteemist. CrmSdk.CoreTools NuGet pakett. Programmi installimiseks järgige neid samme.
- Laadige alla pakett. NuGet
- Nimeta paketi failinime laiend ümber .nupkg-ist .zip-iks.
- Pakkige pakitud (zip) faili sisu lahti.
Leidke SolutionPackager.exe käivitatav fail kaustast <extracted-folder-name>/contents/bin/coretools. Käivita programm kaustast coretools või lisa see kaust oma teele (PATH).
Lahendusepakkija käsurea argumendid
Lahendusepakkija on käsurea tööriist, mida saab kasutada järgmises tabelis määratletud parameetritega.
| Argument | Kirjeldus |
|---|---|
| /action: {Extract|Pakett} | Nõutav. Toiming sooritamiseks. Toiming võib olla lahenduse ZIP-faili ekstraktimine kausta või kausta pakkimine ZIP-failiks. |
| /zipfile: <failitee> | Nõutav. Lahenduse ZIP-faili tee ja nimi. Ekstraktimisel peab fail olemas olema ja olema loetav. Pakkimisel fail asendatakse. |
| /folder: <kausta tee> | Nõutav. Kausta tee. Lahti pakkimisel luuakse see kaust ja täidetakse komponendi failidega. Pakkimisel peab see kaust juba olemas olema ja sisaldama varem lahti pakitud komponendi faile. |
| /packagetype: {Unmanaged|Managed|Mõlemad} | Valikuline. Töödeldava paketi tüüp. Vaikeväärtus on Mittehallatav. See argument võidakse enamikul juhtudel välja jätta, kuna paketi tüüpi saab lugeda ZIP-faili või komponendi failide seest. Kui lahti pakkimine ja väärtus Mõlemad on määratud, peavad hallatava ja mittehallatava lahenduse ZIP-failid olema olemas ja neid töödeldakse ühte kausta. Kui pakkimine on määratud ja „Mõlemad”, luuakse hallatava ja mittehallatava lahenduse .zip-failid ühest kaustast. Lisateavet leiate selle artikli hilisemast jaotisest hallatavate ja mittehallatavate lahendustega töötamise kohta. |
| /allowWrite:{Yes|Ei} | Valikuline. Vaikeväärtus on Jah. Seda argumenti kasutatakse ainult lahti pakkimisel. Kui /allowWrite:No on määratud, sooritab tööriist kõik toimingud, kuid ei saa faile kirjutada ega kustutada. Lahtipakkimise toimingut saab ohutult hinnata ilma olemasolevaid faile üle kirjutamata või kustutamata. |
| /allowDelete:{Yes|No|Küsi} | Valikuline. Vaikeväärtus on Küsi. Seda argumenti kasutatakse ainult lahti pakkimisel. Kui on määratud /allowDelete:Yes, kustutatakse automaatselt kõik parameetriga /folder määratud kaustas olevad ebasoovitavad failid. Kui on määratud /allowDelete:No, siis kustutamist ei toimu. Kui /allowDelete:Küsi on määratud, palutakse kasutajal konsooli kaudu lubada või keelata kõik kustutustoimingud. Kui on määratud /allowWrite:No, siis kustutamist ei toimu isegi siis, kui on määratud ka /allowDelete:Yes. |
| /clobber | Valikuline. Seda argumenti kasutatakse ainult lahti pakkimisel. Kui/clobber on määratud, kirjutatakse kirjutuskaitstud atribuudiga failid üle või kustutatakse. Kui neid pole täpsustatud, ei kirjutata ega kustutata ainult lugemise atribuutiga faile. |
| /errorlevel: {Väljas|Viga|Hoiatus|Info|Paljusõnaline} | Valikuline. Vaikeväärtus on Teave. See argument näitab teabe väljundisse logimise taset. |
| /map: <failitee> | Valikuline. Faili vastenduse direktiive sisaldava XML-faili tee ja nimi. Lahti pakkimisel loetakse tavaliselt parameetriga /kaust määratud kaustast loetavaid faile erinevatest asukohtadest, nagu on määratud vastendusfailis. Paki operatsiooni ajal ei kirjutata faile, mis vastavad direktiividele. |
| /nologo | Valikuline. Keelake bänner käitusajal. |
| /log: <failitee> | Valikuline. Logifaili tee ja nimi. Kui fail on juba olemas, lisatakse failile uus logimisteave. |
| @ <failitee> | Valikuline. Tööriista käsurea argumente sisaldava faili tee ja nimi. |
| /sourceLoc: <string> | Valikuline. See argument loob malli ressursifaili ja kehtib ainult lahti pakkimisel. Võimalikud väärtused on auto või LCID/ISO kood selle keele jaoks, mida soovite eksportida. Selle argumendi kasutamisel pakitakse antud lokaadi stringiressursid lahti neutraalse RESX-failina. Kui on määratud auto või ainult lüliti pikk või lühike kuju, kasutatakse aluslokaati või lahendust. Saate kasutada käsu lühivormi: /src. |
| /lokaliseeri | Valikuline. Ekstraktige või ühendage kõik stringiressursid .resx-failidesse. Saate kasutada käsu lühivormi: /loc. Lokaliseerimissuvand toetab .resx failide ühiskomponente. Lisateave: RESX-i veebiressursside kasutamine |
| /SolutionName: <nimi> | Valikuline. Lahenduse unikaalne nimi, mida pakkida või välja võtta, kui lähtekaust sisaldab mitut lahendust alla solutions/*/solution.yml. Vajalik, kui tuvastatakse rohkem kui üks lahendus. Kehtib ainult YAML lähtekoodihalduse formaadile. Võid kasutada käsu lühendit: /sn. |
| /remapPluginTypeNames | Valikuline. Kui see on määratud, kaardistatakse plug-in täielikult kvalifitseeritud tüübinimed lahenduses sisalduvate kokkupanekute põhjal. Vaikimisi lubatud YAML lähtekoodihalduse formaadis. Võid kasutada käsu lühendit: /fp. |
Lähtekoodihalduse failivormingud
SolutionPackager toetab lahenduste lahtivõtmisel ja pakkimisel kahte kaustapaigutust.
XML-formaat (pärand)
Algne formaat. Lahenduse metaandmed salvestatakse ja Other\Solution.xml, Other\Customizations.xml ning kõik komponendifailid eraldatakse koos nende failidega ühtlasesse kaustahierarhiasse. See formaat on vaikimisi formaat, kui faili lahti .zip pakkida ilma täiendava seadistuseta.
YAML lähtekoodihalduse formaat
Lisatud koos Dataverse Git integratsiooniga, salvestab see formaat lahenduse metaandmeid YAML-failidena, mis on jaotatud struktureeritud kaustahierarhiasse. See on formaat, mis kirjutatakse, kui sa panustad lahendusi natiivse Git-integratsiooni abil Power Apps'is.
Eelised XML-formaadi ees
- Annab puhtamad ja loetavamad komponendipõhised diferentsiaalid lähtekoodihalduses
- Toetab mitut lahendust ühes hoidla kaustas
- Canvas'i rakendusfailid
.msappja kaasaegsed vood on toetatud ainult selles formaadis - Plug-in tüübi nimede ümberkaardistamine on vaikimisi lubatud
Nõutav kaustastruktuur
<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]/
Oluline
YAML-formaat tuvastatakse automaatselt alamkaustaga solutions/ , mis sisaldab *solution.yml faile.
Kui sinu YAML-manifesti failid (solution.yml, solutioncomponents.yml, jne) on paigutatud kausta juurele, mitte alla solutions/<SolutionUniqueName>/, ei tuvasta tööriist YAML-vormingut. Tööriist naaseb XML-teele ja teatab eksitavast veast puuduva Customizations.xmlkohta. Vaata tõrkeotsingut , et saada infot, kuidas seda probleemi lahendada.
Lisainfo: Lahendus YAML lähtekoodi haldusvormingu viide
Vormindamise automaatse tuvastuse reeglid
| Tingimus | Kasutatud formaat |
|---|---|
solutions/*/solution.yml leitud — täpselt üks lahendus |
YAML-formaat, kus lahenduse nimi tuletatakse kaustast |
solutions/*/solution.yml Leitud — mitmed lahendused |
YAML-formaat, kus argument /SolutionName on vajalik |
Alamkataloogi ei solutions/ ole |
XML-formaat (pärand) |
YAML-formaadis kausta pakkimine
Järgmine käsk pakib YAML-formaadi kausta.
SolutionPackager.exe /action:Pack /zipfile:MySolution.zip /folder:C:\repos\myrepo
Pakkimine mitme lahendusega kaustast
Järgmine käsk pakib määratud lahenduse mitme lahenduse kausta.
SolutionPackager.exe /action:Pack /zipfile:SolutionA.zip /folder:C:\repos\myrepo /SolutionName:SolutionA
Kasutage käsu argumenti /kaart
Järgnevalt kirjeldatakse argumendi /kaart kasutamist tööriistas Lahendusepakkija.
Automatiseeritud koostesüsteemis loodud faile (nt. xap Silverlighti failid ja lisandmoodulite komplektid) ei kontrollita tavaliselt lähtekeskkonna juhtimises. Veebiressursid võivad juba olla versioonikontrollis asukohtades, mis ei ühildu otseselt SolutionPackager tööriistaga. Parameetri /kaart kaasamisega saab Lahendusepakkija tööriista suunata selliseid faile lugema ja pakkima alternatiivsetest asukohtadest, mitte kaustast Lahti pakkimine, nagu seda tavaliselt tehakse. Parameeter /map peab määrama kaardistusdirektiive sisaldava XML-faili nime ja tee. Need direktiivid annavad lahenduspaketile juhise leida failidele vasteid nime ja tee järgi ning näitavad sobiva faili leidmiseks alternatiivset asukohta. Järgnev teave kehtib kõigi direktiivide kohta võrdselt.
Võib olla loetletud mitu direktiivi, sealhulgas need, mis vastavad identsetele failidele. Faili alguses loetletud direktiivid on hilisemates direktiivides ülimuslikud.
Kui fail on vastendatud mis tahes direktiivile, tuleb see leida vähemalt ühest alternatiivsest asukohast. Kui sobivaid alternatiive ei leita, kuvab lahenduspakkija vea.
Kausta ja faili teed võivad olla absoluutsed või suhtelised. Suhtelisi teid hinnatakse alati parameetriga /kaust määratud kaustast.
Keskkonnamuutujaid saab määrata süntaksi %variable% abil.
Kausta wildcard "**" võib tähendada "mis tahes alamkaustas". Seda saab kasutada ainult tee lõpuosana, näiteks: "c:\folderA\**".
Failinime wildkaarte võib kasutada ainult vormides "*.ext" või "*.*". Muud mustrit ei toetata.
Siin kirjeldatakse kolme tüüpi direktiivide vastendusi ja näidet, mis selgitab, kuidas neid kasutada.
Kausta vastendamine
Järgnev teave annab üksikasjalikku teavet kaustade kaardistamise kohta.
XML-vorming
<Folder map="folderA" to="folderB" />
Kirjeldus
Failiteed, mis vastavad "kaustaA"-le, vahetatakse "kaustaks B".
Alamkaustade hierarhia peab täpselt kattuma.
Kausta metamärke ei toetata.
Faili nimesid ei saa määrata.
Näited
<Folder map="folderA" to="folderB" /> <Folder map="folderA\folderB" to="..\..\folderC\" /> <Folder map="WebResources\subFolder" to="%base%\WebResources" />
Faili sihtkoht faili vastendamiseks
Järgnev teave annab failidevahelise vastenduse kohta lisateavet.
XML-vorming
<FileToFile map="path\filename.ext" to="path\filename.ext" />
Kirjeldus
Kõik parameetrile map vastavad failid loetakse parameetris to määratud nime ja tee alt.
Parameetri map jaoks:
Faili nimi tuleb määrata. Tee on valikuline. Kui teed pole määratud, võidakse vastendada mis tahes kausta failid.
Failinime metamärke ei toetata.
Kausta metamärki toetatakse.
Parameetri
tojaoks:Faili nimi ja tee tuleb määrata.
Faili nimi võib erineda parameetri
mapnimest.Failinime metamärke ei toetata.
Kausta metamärki toetatakse.
Näited
<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" />
Ülaltoodud paketi näites ei kirjutata cr886_PluginPackageTest.nupkg faili üle, kui see on määratud asukohas juba olemas. NuGet
Fail tee vastendamiseks
Järgnevalt antakse üksikasjalikku teavet fail-teeks vastendamise kohta.
XML-vorming
<FileToPath map="path\filename.ext" to="path" />
Kirjeldus
Kõiki parameetrile map vastavaid faile loetakse parameetris to määratud tee järgi.
Parameetri map jaoks:
Faili nimi tuleb määrata. Tee on valikuline. Kui teed pole määratud, võidakse vastendada mis tahes kausta failid.
Faili nime metamärke toetatakse.
Kausta metamärki toetatakse.
Parameetri to jaoks:
Tee tuleb määrata.
Kausta metamärki toetatakse.
Faili nime ei tohi määrata.
Näited
<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" />
Vastendamise näide
Järgmises XML-koodi näites kuvatakse täielik vastendusfail, mis võimaldab Lahendusepakkija tööriistal lugeda kõiki veebiressursse ja kahte vaikimisi loodud komplekti arendustööriistakomplekti projektist nimega 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>
Hallatavad ja mittehallatavad lahendused
Dataverse'i tihendatud lahenduse (.zip) faili saab eksportida ühte kahest tüübist, nagu siin näidatud.
Hallatud lahendus
Lõpetatud lahendus, mis on organisatsiooni importimiseks valmis. Kui komponente on imporditud, ei saa neid lisada ega eemaldada, kuigi need võivad soovi korral võimaldada täiendavat kohandamist. See on soovitatav, kui lahenduse arendamine on lõpule jõudnud.
Haldamata lahendus
Avatud lahendus, mis ei piira lisamise, eemaldamise ega muutmise võimalusi. See on lahenduse arendamisel soovitatav.
Tihendatud lahendusefaili vorming on selle tüübi põhjal erinev, kas hallatav või mittehallatav. Lahendusepakkija saab töödelda mõlemat tüüpi tihendatud lahendusefaile. Kuid tööriist ei saa üht tüüpi teisendada. Ainus viis lahendusefailide teisendamiseks muuks tüübiks (nt mittehallatavast tüübist hallatavaks tüübiks) on importida mittehallatav lahenduse ZIP-fail Dataverse'i serverisse ja seejärel eksportida lahendus hallatava lahendusena.
Lahendusepakkija saab töödelda mittehallatavaid ja hallatavaid lahenduse ZIP-faile kombineeritud komplektina parameetri /PaketiTüüp:Mõlemad kaudu. Selle toimingu sooritamiseks tuleb teie lahendus eksportida kaks korda iga tüübina, nimetades ZIP-failid järgmiselt.
Mittehallatav ZIP-fail: MisTahesNimi.zip
Hallatav ZIP-fail: MisTahesNimi_hallatav.zip
Tööriist eeldab, et hallatav ZIP-fail on mittehallatava failiga samas kaustas ja pakib mõlemad failid lahti ühte kausta, säilitades hallatavate ja mittehallatavate komponentide erinevused.
Kui lahendus on pakitud lahti nii mittehallatava kui ka hallatava lahendusena, saab sellest ühest kaustast pakkida mõlemad tüübid või iga tüübi eraldi, kasutades parameetrit /PaketiTüüp, et määrata, millist tüüpi luua. Mõlema faili määramisel luuakse kaks .zip-faili, kasutades ülaltoodud nimetamiskonventsiooni. Kui kahest hallatavast ja mittehallatavast kaustast pakkimisel puudub parameeter /PaketiTüüp, luuakse vaikimisi üks mittehallatav ZIP-fail.
Tõrkeotsing
Sõnum kuvatakse Visual Studio kasutamisel ressursifailide muutmiseks
Kui kasutad Visual Studio ressursifailide muutmiseks, mille on loonud lahenduse pakendaja, võid ümberpakkimisel saada teate, mis on sarnane sellele: "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." See juhtub, sest Visual Studio asendab ressursifaili metaandmete sildid andmesiltidega.
Vastukaal
Avage ressursifail oma lemmiktekstiredaktoris ning otsige üles ja värskendage järgmisi silte:
<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">Muutke sõlme nimi
<data>nimeks<metadata>.Näiteks see string:
<data name="Source LCID" xml:space="preserve"> <value>1033</value> </data>Muudetud:
<metadata name="Source LCID" xml:space="preserve"> <value>1033</value> </metadata>See võimaldab Lahenduspakkijal ressursifaili lugeda ja importida. Seda probleemi on täheldatud ainult Visual Studio Resource redaktori kasutamisel.
Viga: "Vajalikku faili ei leia ...\Other\Customizations.xml" YAML kaustaga
See viga tekib, kui käivitad SolutionPackageri (või pac solution pack) kaustas, mis sisaldab YAML-faile nagu solution.yml, kuid need failid paigutatakse kausta juurele, mitte nõutavasse solutions/<SolutionUniqueName>/ alamkausta.
Põhjus: Tööriist tuvastab YAML lähtekoodihalduse formaadi, otsides alamkausta solutions/ , mis sisaldab *solution.yml faile. Kui see kataloog puudub, naaseb tööriist vaikselt XML (legacy) formaati ja ootab Other\Customizations.xml. Tulemuseks olev veateate viitab XML-failile ega maini YAML-i, mis on eksitav.
Parandus: Korralda kaust nii, et YAML manifesti failid oleksid õigete radade all:
<rootFolder>/
solutions/<YourSolutionUniqueName>/ ← move solution.yml here
solution.yml
solutioncomponents.yml
rootcomponents.yml
missingdependencies.yml
publishers/<YourPublisherUniqueName>/
publisher.yml
Kui said kausta Git integratsiooni commit'ist või pac solution clone, peaks kausta struktuur juba õige olema. Kaust, mis sisaldab ainult tipptasemel YAML faile ilma solutions/ alamkaustata, on ebatäielik ekstrakt ja seda ei saa otse pakkida.
Hoiatus: rootcomponents.yml-s deklareeritud komponent ei sisalda lähtefaile
See hoiatus ilmub siis, kui komponent, näiteks lõuendi rakendus, on nimekirjas rootcomponents.yml , kuid oodatud komponendikaustas ei ole vastavaid lähtefaile (näiteks canvasapps/<schema-name>/).
Mõju: Tööriist õnnestub siiski (väljumiskood 0) ja annab kehtiva .zip faili, kuid deklareeritud komponent jäetakse pakendatud lahendusest välja.
Põhjus: Kaust genereeriti osalise väljavõtmise teel või komponendi lähtefaile ei lisatud hoidlasse. Näiteks ainult lahendusmanifesti failid olid kinnitatud, mitte Canvasi rakendus ise.
Parandus: Veendu, et kõik deklareeritud rootcomponents.yml komponendid sisaldavad kaustas vastavaid lähtefaile. Lõuendirakenduste puhul peab fail .msapp eksisteerima all canvasapps/<schema-name>/. Kui mõni fail puudub, ekspordi kogu lahendus Dataverse'ist uuesti ja avage see uuesti, või kasutage pac solution clone seda täieliku väljavõtte saamiseks.