Piezīmes
Lai piekļūtu šai lapai, ir nepieciešama autorizācija. Varat mēģināt pierakstīties vai mainīt direktorijus.
Lai piekļūtu šai lapai, ir nepieciešama autorizācija. Varat mēģināt mainīt direktorijus.
SolutionPackager ir rīks, kas var atgriezeniski sadalīt Microsoft Dataverse saspiestu risinājuma failu vairākos XML failos un citos failos. Pēc tam šos failus var viegli pārvaldīt, izmantojot avota kontroles sistēmu. Nākamajās sadaļās ir parādīts, kā palaist rīku un kā izmantot rīku ar pārvaldītiem un nepārvaldītiem risinājumiem.
Svarīgi
SolutionPackager rīks vairs nav ieteicamais veids, kā izsaiņot un iesaiņot risinājumus. SolutionPackager rīka iespējas ir iekļautas Power Platform CLI. Komandā pac solution ir daudz darbības vārdu, tostarp unpack, pack, cloneun sync kas ietver tās pašas SolutionPackager rīka pamatspējas.
Kur atrast Risinājumu pakotāja rīku?
ToolPackager rīks tiek izplatīts kā daļa no Microsoft. CrmSdk.CoreTools NuGet pakotne. Lai instalētu programmu, rīkojieties šādi.
- Lejupielādējiet paketi NuGet .
- Pārdēvējiet pakotnes faila nosaukuma paplašinājumu no .nupkg uz .zip.
- Izvelciet saspiestā (zip) faila saturu.
Atrodiet SolutionPackager.exe izpildāmo failu mapē <extracted-folder-name>/contents/bin/coretools. Palaidiet programmu no mapes coretools vai pievienojiet šo mapi savam PATH.
Risinājumu pakotāja komandrindas argumenti
Risinājumu pakotājs ir komandrindas rīks, ko var izsaukt ar šajā tabulā norādītajiem parametriem.
| Arguments | Apraksts |
|---|---|
| /action: {Extract|Pakotne} | Obligāti jānorāda. Veicamā darbība. Šī darbība var būt risinājuma .zip faila izgūšana mapē vai mapes saspiešana .zip failā. |
| /zipile: <faila ceļš> | Obligāti jānorāda. Risinājuma .zip faila ceļš un nosaukums. Izvelkot, failam jābūt un jābūt lasāmam. Pakošanas laikā fails tiek aizstāts. |
| /mape: <maoes ceļš> | Obligāti jānorāda. Ceļš uz mapi. Izgūstot tiek izveidota šī mape, un tā tiek aizpildīta ar komponentu failiem. Iepakojot šai mapei jau ir jābūt un tajā jābūt iepriekš izvilktiem komponentu failiem. |
| /packagetype: {Unmanaged|Managed|Abi} | Neobligāts. Apstrādājamās pakotnes tips. Noklusējuma vērtība ir Nepārvaldīts. Šis arguments vairumā gadījumu var tikt izlaists, jo pakotnes tipu var nolasīt no .zip faila vai komponenta faila iekšpuses. Ja izgūšanas laikā ir norādīta vērtība Abi, ir jābūt gan pārvaldītiem, gan nepārvaldītiem risinājuma .zip failiem, un tie tiek apstrādāti vienā mapē. Iesaiņojot un abi ir norādīti, pārvaldīts un nepārvaldīts risinājums .zip faili tiek izveidoti no vienas mapes. Papildinformāciju skatiet sadaļā par darbu ar pārvaldītiem un nepārvaldītiem risinājumiem tālāk šajā rakstā. |
| /allowWrite:{Yes|Nē} | Neobligāts. Noklusējuma vērtība ir Jā. Šis arguments tiek izmantots tikai izvilkšanas laikā. Ja ir norādīts /allowWrite:No, rīks veic visas darbības, bet nevar rakstīt vai dzēst failus. Izvilkšanas darbību var droši novērtēt, nepārrakstot vai nedzēšot esošos failus. |
| /allowDelete:{Yes|No|Uzvedne} | Neobligāts. Noklusējuma vērtība ir Uzvedne. Šis arguments tiek izmantots tikai izvilkšanas laikā. Ja ir norādīts /allowDelete:Yes, visi faili, kas atrodas mapē, kas norādīts ar parametru /folder un nav paredzēti, tiek automātiski izdzēsti. Ja ir norādīts /allowDelete:No, dzēšana nenotiek. Kad ir norādīts /allowDelete:Prompt, lietotājam, izmantojot konsoli, tiek piedāvāts atļaut vai liegt visas dzēšanas darbības. Ja ir norādīts /allowWrite:No, dzēšana netiek veikta pat tad, ja ir norādīts arī /allowDelete:Yes. |
| /clobber | Neobligāts. Šis arguments tiek izmantots tikai izvilkšanas laikā. Ja ir norādīts /clobber, faili, kuriem ir tikai lasāma atribūtu kopa, tiek pārrakstīti vai dzēsti. Ja tas nav norādīts, faili ar tikai lasāmo atribūtu netiek pārrakstīti vai dzēsti. |
| /errorlevel: {Off|Error|Warning|Info|Izvērst} | Neobligāts. Noklusējuma vērtība ir Informācija. Šis arguments norāda izvades informācijas reģistrēšanas līmeni. |
| /karte: <faila ceļš> | Neobligāts. .xml faila ceļš un nosaukums, kurā ir failu kartēšanas direktīvas. Izmantojot tos izgūšanas laikā, faili parasti tiek nolasīti no mapes, kas norādīta ar parametru /mape, tiek nolasīti no alternatīvām atrašanās vietām, kā norādīts kartējuma failā. Iepakošanas operācijas laikā faili, kas atbilst direktīvām, netiek rakstīti. |
| /nologo | Neobligāts. Apspiest reklāmkarogu izpildlaikā. |
| /žurnālfails: <faila ceļš> | Neobligāts. Ceļš un nosaukums uz žurnāla failu. Ja fails jau pastāv, failam tiek pievienota jauna reģistrēšanas informācija. |
| @ <faila ceļš> | Neobligāts. Faila ceļš un nosaukums, kas satur rīka komandrindas argumentus. |
| /sourceLoc: <virkne> | Neobligāts. Šis arguments ģenerē veidnes resursu failu un ir derīgs tikai izvilkšanas laikā. Iespējamās vērtības ir auto vai LCID/ISO kods valodai, kuru vēlaties eksportēt. Ja tiek izmantots šis arguments, virknes resursi no dotās lokalizācijas tiek izgūti kā neitrāls .resx fails. Ja auto vai tikai garā vai īsā veida slēdzis ir norādīts, tiek izmantots bāzes lokalizācija vai risinājums. Jūs varat izmantot komandas īso formu: /src. |
| /localize | Neobligāts. Izvērsiet vai sapludiniet visus virkņu resursus .resx failos. Jūs varat izmantot komandas īso formu: /loc. Lokalizācijas opcija atbalsta .resx failu kopīgotos komponentus. Papildinformācija: RESX tīmekļa resursu izmantošana |
| /SolutionName: <nosaukums> | Neobligāts. Iepakojamā vai izvelkamā risinājuma unikālais nosaukums, ja avota mapē ir vairāki risinājumi sadaļā solutions/*/solution.yml. Nepieciešams, ja tiek konstatēts vairāk nekā viens risinājums. Attiecas tikai uz YAML avota vadīklas formātu. Varat izmantot komandas īso formu: /sn. |
| /remapPluginTypeNames | Neobligāts. Ja tas ir norādīts, spraudņa pilnībā kvalificētie tipu nosaukumi tiek pārkartēti, pamatojoties uz risinājumā iekļautajiem komplektiem. Pēc noklusējuma iespējots YAML avota vadības formātā. Varat izmantot komandas īso formu: /fp. |
Avota kontroles failu formāti
SolutionPackager atbalsta divus mapju izkārtojumus, izvelkot un iepakojot risinājumus.
XML formāts (mantots)
Oriģinālais formāts. Risinājuma metadati tiek glabāti un Other\Solution.xmlOther\Customizations.xml, un visi komponentu faili tiek izvilkti plakanā mapju hierarhijā kopā ar šiem failiem. Šis formāts ir noklusējuma formāts, izvelkot .zip failu bez papildu konfigurācijas.
YAML avota vadības formāts
Šis formāts, kas ieviests kopā ar Dataverse Git integrāciju, glabā risinājuma metadatus kā YAML failus, kas izplatīti strukturētā mapju hierarhijā. Tas ir formāts, kas rakstīts, kad veicat risinājumus, izmantojot vietējo Git integrāciju pakalpojumā Power Apps.
Priekšrocības salīdzinājumā ar XML formātu
- Rada tīrākus, vieglāk salasāmus komponentu atšķirības avota kontrolē
- Atbalsta vairākus risinājumus vienā repozitorija mapē
- Audekla programmas
.msappfaili un mūsdienīgas plūsmas tiek atbalstītas tikai šajā formātā - Spraudņa tipa nosaukuma pārkartēšana ir iespējota pēc noklusējuma
Nepieciešamā mapes 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]/
Svarīgi
YAML formāts tiek automātiski noteikts, ja ir apakšmape, solutions/ kurā ir *solution.yml faili.
Ja YAML manifesta faili (solution.yml, solutioncomponents.ymlutt.) ir novietoti mapes saknē, nevis zem solutions/<SolutionUniqueName>/, rīks nenosaka YAML formātu. Rīks atgriežas XML ceļā un ziņo par maldinošu kļūdu par trūkstošu Customizations.xml. Informāciju par šīs problēmas novēršanu skatiet sadaļā Problēmu novēršana .
Papildinformācija: Risinājuma YAML avota vadības formāta atsauce
Automātiskās noteikšanas kārtulu formatēšana
| Nosacījums | Izmantotais formāts |
|---|---|
solutions/*/solution.yml atrasts — tieši viens risinājums |
YAML formāts, kur risinājuma nosaukums tiek izsecināts no mapes |
solutions/*/solution.yml Atrasts — vairāki risinājumi |
YAML formāts, ja /SolutionName arguments ir nepieciešams |
Apakšdirektorija nav solutions/ |
XML formāts (mantots) |
YAML formāta mapes iepakošana
Šī komanda iesaiņo YAML formāta mapi.
SolutionPackager.exe /action:Pack /zipfile:MySolution.zip /folder:C:\repos\myrepo
Iepakošana no vairāku risinājumu mapes
Šī komanda iepako norādīto risinājumu vairāku risinājumu mapē.
SolutionPackager.exe /action:Pack /zipfile:SolutionA.zip /folder:C:\repos\myrepo /SolutionName:SolutionA
Izmantojiet komandas argumentu /map
Tālāk sniegtajā diskusijā ir sniegta detalizēta informācija par rīka Risinājuma pakotāja argumenta /map izmantošanu.
Automātiskās kompilācijas sistēmā iebūvētie faili, piemēram, .xap Silverlight faili un spraudņu montāžas, parasti netiek pārbaudīti avota vadīklā. Tīmekļa resursi jau var būt avota kontrolē vietās, kas nav tieši saderīgas ar rīku SolutionPackager. Iekļaujot /map parametru, Risinājumu pakotāja rīks var tikt novirzīts, lai lasītu un iepakotu šādus failus no alternatīvām vietām, nevis no Izvilkto failu mapes iekšpuses, kā tas parasti tiek darīts. Parametram /map jānorāda nosaukums un ceļš uz XML failu, kas satur kartēšanas direktīvas. Šīs direktīvas uzdod SolutionPackager saskaņot failus pēc to nosaukuma un ceļa un norādīt alternatīvo atrašanās vietu, kur atrast atbilstošo failu. Šāda informācija vienādi attiecas uz visām direktīvām.
Var uzskaitīt vairākas direktīvas, tostarp tās, kas atbilst identiskiem failiem. Direktīvas dokumenta sākumā uzskaitītajām direktīvām ir prioritāte salīdzinājumā ar vēlāk uzskaitītajām direktīvām.
Ja fails atbilst jebkurai direktīvai, tas ir atrodams vismaz vienā alternatīvā atrašanās vietā. Ja netiek atrastas atbilstošas alternatīvas, SolutionPackager izdod kļūdu.
Mapju un failu ceļi var būt absolūti vai relatīvi. Relatīvie ceļi vienmēr tiek novērtēti no mapes, kas norādīta ar parametru /folder.
Vides mainīgos var norādīt, izmantojot %variable% sintaksi.
Mapes aizstājējzīmi "**" var izmantot, lai apzīmētu "jebkurā apakšmapē". To var izmantot tikai kā ceļa pēdējo daļu, piemēram: "c:\folderA\**".
Faila nosaukuma aizstājējzīmes var izmantot tikai formās "*.ext" vai "*.*". Neviens cits modelis netiek atbalstīts.
Šeit ir aprakstīti trīs veidu direktīvu kartējumi, kā arī piemērs, kas parāda, kā tos izmantot.
Mapes kartēšana
Tālāk sniegtajā informācijā ir sniegta detalizēta informācija par mapju kartēšanu.
XML formāts
<Folder map="folderA" to="folderB" />
Apraksts
Failu ceļi, kas atbilst "mapeiA", tiek pārslēgti uz "mapiB".
Zem katras apakšmapes hierarhijai precīzi jāsakrīt.
Mapju aizstājējzīmes netiek atbalstītas.
Nevar norādīt failu nosaukumus.
Piemēri
<Folder map="folderA" to="folderB" /> <Folder map="folderA\folderB" to="..\..\folderC\" /> <Folder map="WebResources\subFolder" to="%base%\WebResources" />
Faila uz failu kartēšana
Tālāk sniegtajā informācijā ir sniegta papildinformācija par kartēšanu starp failiem.
XML formāts
<FileToFile map="path\filename.ext" to="path\filename.ext" />
Apraksts
Jebkurš fails, kas atbilst parametram map , tiek nolasīts no parametrā to norādītā nosaukuma un ceļa.
map parametram:
Ir jānorāda faila nosaukums. Ceļš nav obligāts. Ja ceļš nav norādīts, var tikt saskaņoti faili no jebkuras mapes.
Faila nosaukuma aizstājējzīmes netiek atbalstītas.
Mapes aizstājējzīme tiek atbalstīta.
toparametram:Ir jānorāda faila nosaukums un ceļš.
Faila nosaukums var atšķirties no
mapparametra nosaukuma.Faila nosaukuma aizstājējzīmes netiek atbalstītas.
Mapes aizstājējzīme tiek atbalstīta.
Piemēri
<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" />
Iepriekš minētajā NuGet paketes piemērā cr886_PluginPackageTest.nupkg netiek pārrakstīts, ja fails jau pastāv norādītajā vietā.
Fails uz ceļu kartēšana
Tālāk sniegta detalizēta informācija par fails uz ceļu kartēšanu.
XML formāts
<FileToPath map="path\filename.ext" to="path" />
Apraksts
Jebkurš parametram map atbilstošs fails tiek nolasīts no to parametrā norādītā ceļa.
map parametram:
Ir jānorāda faila nosaukums. Ceļš nav obligāts. Ja ceļš nav norādīts, var tikt saskaņoti faili no jebkuras mapes.
Faila nosaukuma aizstājējzīmes tiek atbalstītas.
Mapes aizstājējzīme tiek atbalstīta.
to parametram:
Ir jānorāda ceļš.
Mapes aizstājējzīme tiek atbalstīta.
Nav jānorāda faila nosaukums.
Piemēri
<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" />
Kartēšanas piemērs
Šajā XML koda paraugā ir parādīts pilnīgs kartēšanas fails, kas ļauj Risinājumu pakotāja rīkam lasīt jebkuru tīmekļa resursu un divas noklusējuma ģenerētās montāžas no izstrādātāju rīkkopas projekta 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>
Pārvaldītie un nepārvaldītie risinājumi
Dataverse saspiestā risinājuma (.zip) failu var eksportēt vienā no diviem tipiem, kā parādīts šeit.
Pārvaldīts risinājums
Pabeigts risinājums, kas ir gatavs importēšanai organizācijā. Pēc importēšanas komponentus nevar pievienot vai noņemt, lai gan pēc izvēles tie var atļaut papildu pielāgošanu. Tas ir ieteicams, ja risinājuma izstrāde ir pabeigta.
Nepārvaldīts risinājums
Atvērts risinājums bez ierobežojumiem attiecībā uz to, ko var pievienot, noņemt vai modificēt. Tas ir ieteicams risinājuma izstrādes laikā.
Saspiestā risinājuma faila formāts būs atšķirīgs atkarībā no tā tipa - pārvaldīta vai nepārvaldīta. Risinājumu pakotājs var apstrādāt jebkura tipa saspiestu risinājumu failus. Tomēr rīks nevar pārvērst vienu tipu citā. Vienīgais veids, kā risinājuma failus pārvērst par citu tipu, piemēram, no nepārvaldīta uz pārvaldīta, ir importēt nepārvaldīto risinājumu .zip failu Dataverse serverī, un pēc tam šis risinājums ir jāeksportē kā pārvaldīts risinājums.
Risinājumu pakotājs var apstrādāt nepārvaldīta un pārvaldīta risinājuma .zip formāta failus kā apvienotu kopu, izmantojot /PackageType:Both parametru. Lai veiktu šo darbību, risinājums ir jāeksportē divreiz pēc katra veida, nosaucot .zip failus šādi.
Nepārvaldīts .zip fails: AnyName.zip
Pārvaldīts .zip fails: AnyName_managed.zip
Rīks pieņems, ka pārvaldītais zip fails atrodas tajā pašā mapē, kur nepārvaldītais fails, un izvilks abus failus vienā mapē, saglabājot atšķirības, kur pastāv pārvaldītie un nepārvaldītie komponenti.
Pēc tam, kad risinājums ir izvilkts gan kā nepārvaldīts, gan pārvaldīts fails, ir iespējams no vienas mapes sapakot abus vai katru tipu atsevišķi, izmantojot parametru /PackageType, lai norādītu, kuru tipu izveidot. Norādot abus failus, tiks izveidoti divi .zip faili, izmantojot iepriekš minēto nosaukumu piešķiršanas konvenciju. Ja /PackageType parametrs nav iekļauts divu pārvaldītu un nepārvaldītu mapju pakotnē, noklusējuma iestatījums ir izveidot vienu nepārvaldītu .zip failu.
Problēmu novēršana
Ziņojums, kas tiek parādīts, izmantojot Visual Studio resursu failu rediģēšanai
Ja izmantojat Visual Studio, lai rediģētu risinājumu pakotāja izveidotās resursu tvertnes, pārpakojot var tikt parādīts šāds ziņojums: "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." Tas notiek tāpēc, ka Visual Studio resursu faila metadatu tagus aizstāj ar datu tagiem.
Risinājums
Atveriet resursu failu savā iecienītākajā teksta redaktorā un atrodiet un atjauniniet tālāk norādītos tagus:
<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">Mainiet mezgla nosaukumu no
<data>uz<metadata>.Piemēram, šī virkne:
<data name="Source LCID" xml:space="preserve"> <value>1033</value> </data>Mainās uz:
<metadata name="Source LCID" xml:space="preserve"> <value>1033</value> </metadata>Tas ļauj risinājuma pakotājiem lasīt un importēt resursu failu. Šī problēma ir novērota tikai tad, ja izmantojat Visual Studio resursu redaktoru.
Kļūda: "Nevar atrast vajadzīgo failu ...\Other\Customizations.xml" ar YAML mapi
Šī kļūda parādās, palaižot SolutionPackager (vai pac solution pack) mapē, kurā ir YAML faili, piemēram solution.yml, , , bet šie faili tiek ievietoti mapes saknē, nevis nepieciešamajā solutions/<SolutionUniqueName>/ apakšmapē.
Cēlonis: Rīks nosaka YAML avota kontroles formātu, meklējot apakšmapi solutions/ , kurā ir *solution.yml faili. Ja šī direktorija nav, rīks klusi atgriežas XML (mantotajā) formātā un sagaida Other\Customizations.xml. Iegūtais kļūdas ziņojums attiecas uz XML failu un nepiemin YAML, kas ir maldinošs.
Labojums: Pārkārtojiet mapi tā, lai YAML manifesta faili atrastos pareizajos ceļos:
<rootFolder>/
solutions/<YourSolutionUniqueName>/ ← move solution.yml here
solution.yml
solutioncomponents.yml
rootcomponents.yml
missingdependencies.yml
publishers/<YourPublisherUniqueName>/
publisher.yml
Ja mapi ieguvāt no Git integrācijas apņemšanās vai pac solution clone, mapes struktūrai jau jābūt pareizai. Mape, kurā ir tikai augstākā līmeņa YAML faili bez apakšdirektorijas, solutions/ ir nepilnīgs izraksts, un to nevar tieši iesaiņot.
Brīdinājums: rootcomponents.yml deklarētajam komponentam nav avota failu
Šis brīdinājums tiek parādīts, ja komponents, piemēram, audekla programma, ir norādīts rootcomponents.yml , bet paredzamajā komponentu mapē nav atbilstošu avota failu (piemēram, canvasapps/<schema-name>/).
Efekts: Rīks joprojām darbojas (izejas kods 0) un rada derīgu .zip failu, bet deklarētais komponents tiek izlaists no iepakotā risinājuma.
Cēlonis: Mape tika izveidota, izmantojot daļēju izvilkumu, vai komponenta avota faili nebija iekļauti repozitorijā. Piemēram, tika izveidoti tikai risinājuma manifesta faili, nevis pati audekla programma.
Labojums: Pārliecinieties, ka visiem deklarētajiem komponentiem rootcomponents.yml mapē ir atbilstošie avota faili. Audekla programmām failam .msapp ir jābūt sadaļā canvasapps/<schema-name>/. Ja trūkst failu, atkārtoti eksportējiet pilnu risinājumu no Dataverse un izsaiņojiet to vēlreiz vai izmantojiet pac solution clone , lai iegūtu pilnīgu izrakstu.