Sprendimo pakavimo įrankis

SolutionPackager yra įrankis, kuris gali grįžtamai suskaidyti Microsoft Dataverse suglaudintą 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.

Kur ieškoti „SolutionPackager“ įrankio

„SolutionPackager“ įrankis platinamas kaip Microsoft.CrmSdk.CoreTools „NuGet“ paketo dalis. Norėdami įdiegti programą, atlikite šiuos veiksmus.

  1. NuGet Atsisiųskite paketą.
  2. Pervardykite paketo failo pavadinimo plėtinį iš .nupkg į .zip.
  3. Išskleiskite suglaudinto (ZIP) failo turinį.

SolutionPackager.exe vykdomąjį failą rasite 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 žr. toliau esančiame šios temos 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 nurodyta /allowDelete:Yes, visi aplanke, nurodytame parametru /folder esantys failai, kurių neturi būti, yra 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. Kai nenurodyta, failai, turintys sukonfigūruotą tik peržiūros atributą, nėra perrašomi arba 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 metu į failus, atitinkančius sąlygas, nėra rašoma.
/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

/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 nurodo 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ę.

  • Aplankas su pakaitos simboliu „**“ gali reikšti „bet kuriame poaplankyje“. Jį galima naudoti tik kaip galutinę kelio dalį, pvz., „c:\folderA\**“.

  • Failo vardo pakaitos simbolius galima naudoti tik „*.ext“ arba „*.*“ formose. 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 kuris failas, atitinkantis parametrą map, bus nuskaitytas naudojant vardą ir 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 nepalaikomi.

  • Palaikomi aplanko pakaitos simboliai.

    Parametras to:

  • Turi būti nurodytas failo vardas ir kelias.

  • Failo vardas gali skirtis nuo parametro map vardo.

  • 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" /> 

Atminkite, kad 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 sub-folders -->  
       <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 arba pašalinti, nors jie gali būti pasirinktinai tinkinami. 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

Jei išteklių failams, kuriuos sukūrė sprendimų pakavimo įrankis, redaguoti naudojate „Visual Studio“, pakuojant iš naujo jums gali būti rodomas pranešimas, panašus į šį: “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 gali įvykti, nes „Visual Studio“ ištekliaus failo metaduomenų žymes pakeičia duomenų žymėmis.

Alternatyvus sprendimas

  1. 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">  
    
    
  2. 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ą. Su šia problema susidurta tik naudojant „Visual Studio“ išteklių rengyklę.

Taip pat žr.

Pirminio teksto valdymo sistemos naudojimas su sprendimo failais

Sprendimų konceptai