Deli putem


Alatka za pravljenje paketa rešenja

SolutionPackager je alatka koja može storatorski razgraditi komprimovanu Microsoft Dataverse datoteku rešenja u više XML datoteka i drugih datoteka. Zatim možete lako da upravljate ovim datotekama pomoću sistema za kontrolu izvora. Sledeći odeljci prikazuju vam kako da pokrenete alatku i kako da koristite alatku sa kompletnim i nekompletnim rešenjima.

Važno

Alat SolutionPackager više nije preporučljiv način raspakivanja i pakovanja rešenja. Mogućnosti alatke SolutionPackager su ugrađene u Power Platform CLI. Komanda pac solution ima niz glagola unpack uključujući, pack, clone, sync i koji uključuju iste osnovne mogućnosti alatke SolutionPackager.

Gde možete pronaći alatku SolutionPackager

Alatka SolutionPackager se distribuira kao deo Microsoft.CrmSdk.CoreTools NuGet paketa. Da biste instalirali program, sledite ove korake.

  1. Preuzmi paket NuGet .
  2. Preimenujte oznaku tipa datoteke paketa iz .nupkg u .zip.
  3. Izdvojite sadržaj komprimovane (zip) datoteke.

Pronađite SolutionPackager.exe u fascikli <izdvojeno-fascikla-ime>/sadržaj/regal/coretools. Pokrenite program iz fascikle "Coretools" ili dodajte tu fasciklu na putanju.

Argumenti komandne linije alatke SolutionPackager

SolutionPackager je alatka komandne linije koji se može pozivati sa parametrima navedenim u sledećoj tabeli.

Argument Opis
/action: {Extract|Pack} Obavezno. Radnja koju treba obaviti. Radnja može biti da raspakujete .zip datoteku u fasciklu ili da spakujete fasciklu u .zip datoteku.
/zipfile: <putanja do datoteke> Obavezno. Putanja i naziv .zip datoteke rešenja. Prilikom izdvajanja datoteka mora postojati i biti čitljiva. Prilikom pakovanja, datoteka se zamenjuje.
/folder: <putanja do fascikle> Obavezno. Putanja do fascikle. Prilikom raspakivanja, ova fascikla se kreira i popunjava datotekama komponenti. Prilikom pakovanja, ova fascikla već mora da postoji i sadrži prethodno raspakovane datoteke komponenti.
/packagetype: {Unmanaged|Managed|Both} Opcionalno. Tip paketa koji se obrađuje. Podrazumevana vrednost je „Unmanaged“. Ovaj argument može biti izostavljen u većini slučajeva jer se tip paketa može pročitati iz .zip datoteke ili datoteka komponenti. Kada raspakujete sadržaj i navedena je opcija „Both“, moraju da budu prisutne .zip datoteke i kompletnog i nekompletnog rešenja i obrađene u jednoj fascikli. Prilikom pakovanja i jedno i drugo je navedeno, upravljano i neko .zip datoteke se proizvode iz jedne fascikle. Više informacija potražite u odeljku o radu sa upravljanim i nekoništenim rešenjima u ovom članku.
/allowWrite:{Yes|No} Opcionalno. Podrazumevana vrednost je Da. Ovaj argument se koristi samo tokom raspakivanja. Kada je navedeno /allowWrite:No, alatka obavlja sve operacije, ali je onemogućena u pisanju ili brisanju bilo koje datoteke. Operacija raspakivanja može se sigurno oceniti bez prepisivanja ili brisanja bilo koje postojeće datoteke.
/allowDelete:{Yes|No|Prompt} Opcionalno. Podrazumevana vrednost je Prompt. Ovaj argument se koristi samo tokom raspakivanja. Kada je naveden /allowDelete:Yes, sve datoteke prisutne u fascikli navedenoj po parametru /fascikle koje se ne očekuju automatski se brišu. Kada je naveden /allowDelete:No, ne dolazi do brisanja. Kada je navedeno /allowDelete:Prompt, od korisnika će biti zatraženo preko konzole da dozvoli ili zabrani sve operacije brisanja. Ako je naveden /allowWrite:No, ne dolazi do brisanja čak i ako je naveden /allowDelete:Yes.
/clobber Opcionalno. Ovaj argument se koristi samo tokom raspakivanja. Kada je naveden parametar /clobber, datoteke koje imaju atribut samo za čitanje se prepisuju ili brišu. Kada nije navedeno, datoteke koje imaju atribut samo za čitanje se ne prepisuju niti brišu.
/errorlevel: {Off|Error|Warning|Info|Verbose} Opcionalno. Podrazumevana vrednost je Info. Ovaj argument označava nivo informacija evidentiranja za iznošenje.
/map: <putanja do datoteke> Opcionalno. Putanja i naziv .xml datoteke koja sadrži direktive o mapiranju datoteka. Kada se koriste tokom raspakivanja, datoteke koje se obično čitaju iz fascikle određene parametrom /folder čitaju se sa alternativnih lokacija kako je određeno u datoteci za mapiranje. Tokom operacija pakovanja, datoteke koje se podudaraju sa direktivama se ne zapisuju.
/nologo Opcionalno. Potisnite baner tokom izvršavanja.
/log: <putanja do datoteke> Opcionalno. Putanja i naziv datoteke evidencije. Ako datoteka već postoji, u nju se dodaju nove informacije evidentiranja.
@ <putanja do datoteke> Opcionalno. Putanja i naziv datoteke koja sadrži argumente komandne linije za alatku.
/sourceLoc: <niska> Opcionalno. Ovaj argument generiše datoteku resursa predloška i važi samo pri raspakivanju.

Moguće vrednosti su auto ili LCID/ISO kôd za jezik koji želite da izvezete. Kada se koristi ovaj argument, resursi stringova iz datog lokalnog standarda se raspakuju kao neutralna .resx datoteka. Ako se navede auto ili samo dugačak ili kratak oblik prekidača, koristi se osnovni lokalni standard ili rešenje. Možete da koristite kratki oblik komande: /src.
/localize Opcionalno. Raspakujte ili objedinite sve resurse niski u .resx datoteke. Možete da koristite kratki oblik komande: /loc. Opcija lokalizacije podržava zajedničke komponente za .resx datoteke. Više informacija:Korišćenje RESX Veb resursa

Korišćenje argumenta komande /map

Sledeća rasprava detaljno koristi upotrebu argumenta /map za alatku SolutionPackager.

Datoteke koje su ugrađene u sistem automatizovane gradnje, kao što su .xap Silverlight datoteke i sklopovi dodatnih komponenti, obično se ne proveravaju u kontroli izvora. Veb resursi su možda već prisutni u kontroli izvora na lokacijama koje nisu direktno kompatibilne sa alatkom SolutionPackager. Uključivanjem parametra /map, alatka SolutionPackager može biti usmerena na čitanje i pakovanje tih datoteka sa alternativnih lokacija, a ne iz fascikle Extract, kao što se to obično radi. Parametar /mapa mora da navede ime i putanju do XML datoteke koja sadrži mapiranje direktive. Te direktive nalažu SolutionPackageru da uporedi datoteke sa njihovim imenom i putanjom i naznači alternativnu lokaciju za pronalaženje podusne datoteke. Sledeća informacija se odnosi na sve direktive podjednako.

  • Moguće je da je navedeno više direktiva, uključujući one direktive koje se podudaraju sa identičnim datotekama. Direktive navedene rano u dosijeu imaju prednost u odnosu na direktive navedene kasnije.

  • Ako se datoteka podudara sa bilo kojom direktivom, mora se pronaći na najmanje jednoj alternativnoj lokaciji. Ako se ne pronađe odgovarajuća alternativa, SolutionPackager izdaje grešku.

  • Putanje fascikli i datoteka mogu biti apsolutne ili relativne. Relativne putanje se uvek ocenjuju iz fascikle koja je navedena u parametru /folder.

  • Promenljive okruženja mogu se navesti upotrebom sintakse %variable%.

  • Džoker fascikla "" može** se koristiti za "u bilo kojoj potfascikli". Može se koristiti samo kao završni deo putanje, na primer: "c:\folderA\**".

  • Džoker znakovi naziva datoteke mogu se koristiti samo u obliku „*.ext“ ili „*.*“. Nije podržan nijedan drugi šablon.

    Ovde su opisane tri vrste mapiranja direktiva, zajedno sa primerom koji vam pokazuje kako da ih koristite.

Mapiranje fascikle

Sledeće informacije pružaju detaljne informacije o fasciklama mapiranje.

XML format

<Folder map="folderA" to="folderB" />

Opis

Putanje datoteka koje se podudaraju sa "folderA" se prebacuju na "folderB".

  • Hijerarhija potfascikli ispod svake od njih mora se tačno podudarati.

  • Džoker znakovi fascikli nisu podržani.

  • Ne možete navoditi nazive datoteka.

    Primeri

    <Folder map="folderA" to="folderB" />  
    <Folder map="folderA\folderB" to="..\..\folderC\" />  
    <Folder map="WebResources\subFolder" to="%base%\WebResources" />  
    

Mapiranje „datoteka u datoteku“

Sledeće informacije pružaju više detalja o datotekama koje se mapiranje.

XML format

<FileToFile map="path\filename.ext" to="path\filename.ext" />

Opis

Svaka datoteka koja se podudara map sa parametrom čita se iz imena i putanje navedene u parametru to .

Za parametar map:

  • Naziv datoteke mora biti naveden. Putanja je opcionalna. Ako putanja nije navedena, datoteke iz bilo koje fascikle mogu se podudarati.

  • Džoker znakovi sa imenom datoteke nisu podržani.

  • Džoker znak za fasciklu je podržan.

    Za parametar to:

  • Naziv datoteke i putanja moraju biti navedeni.

  • Naziv datoteke može se razlikovati od imena u parametru map.

  • Džoker znakovi sa imenom datoteke nisu podržani.

  • Džoker znak za fasciklu je podržan.

Primeri

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

U gorenavedenom NuGet primeru paketa, cr886_PluginPackageTest.nupkg se ne zamenjuje ako datoteka već postoji na navedenoj lokaciji.

Mapiranje datoteke u putanju

U nastavku su navedene detaljne informacije o mapiranju „datoteka u putanju“.

XML format

<FileToPath map="path\filename.ext" to="path" />

Opis

Svaka datoteka koja odgovara parametru map se čita iz putanje navedene u parametru to.

Za parametar map:

  • Naziv datoteke mora biti naveden. Putanja je opcionalna. Ako putanja nije navedena, datoteke iz bilo koje fascikle mogu se podudarati.

  • Džoker znakovi za naziv datoteke su podržani.

  • Džoker znak za fasciklu je podržan.

Za parametar to:

  • Putanja mora biti navedena.

  • Džoker znak za fasciklu je podržan.

  • Naziv datoteke ne sme da bude naveden.

    Primeri

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

Primer mapiranja

Sledeći uzorak XML koda prikazuje kompletnu datoteku mapiranja koja omogućava alatki SolutionPackager da čita bilo koji veb-resurs i dva podrazumevana generisana sklopa iz projekta u kompletu alatki za projektante pod nazivom 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>  

O kompletnim i nekompletnim rešenjima

Dataverse komprimovana (.zip) datoteka rešenja može se izvesti u jedan od dva tipa, kao što je ovde prikazano.

Kompletno rešenje
Završeno rešenje spremno za uvoz u organizaciju. Jednom uvezene komponente se ne mogu dodavati ili uklanjati, mada mogu opcionalno omogućiti dalje prilagođavanje. Ovo se preporučuje kada je razvoj rešenja završen.

Nekompletno rešenje
Otvoreno rešenje bez ograničenja šta se može dodati, ukloniti ili izmeniti. Ovo se preporučuje tokom razvoja rešenja.

Format komprimovane datoteke rešenja će se razlikovati u zavisnosti od tipa, bilo da kompletno ili nekompletno. SolutionPackager može da obradi komprimovane datoteke rešenja bilo kog tipa. Međutim, alatka ne može da konvertuje jedan tip u drugi. Jedini način konvertovanja datoteka rešenja u drugi tip, na primer iz nekompletnog rešenja u kompletno, jeste putem uvoza .zip datoteke nekompletnog rešenja u Dataverse server, a zatim izvozom tog rešenja kao kompletnog.

SolutionPackager može da obraditi .zip datoteke nekompletnog i kompletnog rešenja kao kombinovani skup preko parametra /PackageType:Both. Da biste obavili ovu operaciju, potrebno je da izvezete rešenje dva puta za svaki tip, dajući naziv .zip datotekama na sledeći način.

.zip datoteka nekompletnog rešenja: BiloKojeIme.zip .zip datoteka kompletnog rešenja: BiloKojeIme_managed.zip

Alatka će pretpostaviti prisustvo zip datoteke kompletnog rešenja u istoj fascikli kao i datoteka nekompletnog rešenja i raspakovaće obe datoteke u jednu fasciklu, održavajući razlike tamo gde postoje kompletne i nekompletne komponente.

Kada se rešenje raspakuje kao nekompletno i kompletno, moguće je iz te jedne fascikle spakovati oba tipa ili svaki tip pojedinačno, korišćenjem parametra /PackageType da biste odredili koji tip da kreirate. Prilikom navođenja obe datoteke, .zip datoteka će biti proizvedene pomoću gorenavedene konvencije o imenovanju. Ako nedostaje parametar /PackageType prilikom pakovanja iz dvostruke fascikle kompletnog i nekompletnog rešenja, podrazumevano je da se napravi jedna .zip datoteka nekompletnog rešenja.

Rešavanje problema

Ako koristite Visual Studio da biste izmenili datoteke resursa kreirane u alatki za pravljenje paketa rešenja, možda ćete pri ponovnom pakovanju dobiti poruku sličnu ovoj: “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.” To se dešava zato što Visual Studio zamenjuje oznake metapodataka datoteke resursa oznakama podataka.

Zaobilazno rešenje

  1. Otvorite datoteku resursa u svom omiljenom uređivaču teksta i pronađite i ažurirajte sledeće oznake:

    <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. Promenite ime čvora iz <data> u <metadata>.

    Na primer, ova niska:

    <data name="Source LCID" xml:space="preserve">  
      <value>1033</value>  
    </data>  
    
    

    Menja se u:

    <metadata name="Source LCID" xml:space="preserve">  
      <value>1033</value>  
    </metadata>  
    
    

    To omogućava uređaju za pakovanje rešenja da čita i uvozi datoteku resursa. Ovaj problem je primećen samo kada koristite Visual Studio uređivač resursa.

Takođe pogledajte

Korišćenje kontrole izvora pomoću datoteka rešenja
Koncepti rešenja