Poznámka
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete sa skúsiť prihlásiť alebo zmeniť adresáre.
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete skúsiť zmeniť adresáre.
SolutionPackager je nástroj, ktorý dokáže reverzibilne rozložiť komprimovaný súbor riešenia na viacero súborov XML a iných súborov. Microsoft Dataverse Tieto súbory potom môžete jednoducho spravovať pomocou systému správy zdrojového kódu. Nasledujúce sekcie vám ukážu, ako nástroj spustiť a ako ho používať pri spravovaných a nespravovaných riešeniach.
Dôležité
Nástroj SolutionPackager už nie je odporúčaným spôsobom na rozbaľovanie a balenie riešení. Možnosti nástroja SolutionPackager boli začlenené do rozhrania CLI Power Platform . Príkaz pac solution má niekoľko slovies vrátane unpack, pack, clone a sync , ktoré zahŕňajú rovnaké základné možnosti nástroja SolutionPackager.
Kde nájdete nástroj SolutionPackager
Nástroj SolutionPackager je distribuovaný ako súčasť balíka Microsoft.CrmSdk.CoreTools NuGet. Ak chcete nainštalovať program, postupujte podľa týchto krokov.
- Stiahnite si balík. NuGet
- Premenujte príponu súboru balíka z .nupkg na .zip.
- Rozbaľte obsah komprimovaného (zip) súboru.
V priečinku <názov extrahovaného priečinka>/contents/bin/coretools vyhľadajte spustiteľný súbor SolutionPackager.exe. Spustite program z priečinka coretools alebo pridajte tento priečinok do vašej cesty PATH.
Argumenty príkazového riadka SolutionPackager
SolutionPackager je nástroj príkazového riadka, ktorý je možné vyvolať pomocou parametrov uvedených v nasledujúcej tabuľke.
| Argument | Description |
|---|---|
| /action: {Extract|Zbaliť} | Povinné. Akcia, ktorú treba vykonať. Akcia môže byť buď extrahovať súbor .zip riešenia do priečinka, alebo zabaliť priečinok do súboru .zip. |
| /zipfile: <cesta k súboru> | Povinné. Cesta a názov súboru .zip riešenia. Pri extrahovaní musí súbor existovať a byť čitateľný. Pri balení sa súbor nahradí. |
| /folder: <cesta k priečinku> | Povinné. Cesta k priečinku. Pri rozbalení sa tento priečinok vytvorí a zaplní sa súbormi komponentov. Pri balení musí tento priečinok už existovať a obsahovať predtým extrahované súbory komponentov. |
| /packagetype: {Nespravované|Spravované|Obaja} | Voliteľné. Typ balíka na spracovanie. Predvolená hodnota je Unmanaged. Tento argument možno vo väčšine prípadov vynechať, pretože typ balíka je možné prečítať z vnútra súboru .zip alebo komponentov. Keď je pri extrahovaní a zadané Both, musia byť prítomné .zip súbory spravovaného a nespravovaného riešenia a musia byť spracované do jedného priečinka. Pri balení a zadaní možnosti Both sa súbory .zip spravovaného aj nespravovaného riešenia vytvoria z jedného priečinka. Ďalšie informácie nájdete v časti o práci so spravovanými a nespravovanými riešeniami ďalej v tomto článku. |
| /allowWrite:{Yes|No} | Voliteľné. Predvolená hodnota je Áno. Tento argument sa používa iba počas extrakcie. Ak je zadané /allowWrite:No, nástroj vykoná všetky operácie, ale zabráni zápisu alebo vymazaniu akýchkoľvek súborov. Operáciu extrakcie je možné bezpečne vyhodnotiť bez toho, aby došlo k prepísaniu alebo vymazaniu existujúcich súborov. |
| /allowDelete:{Yes|No|Prompt} | Voliteľné. Predvolená hodnota je Prompt. Tento argument sa používa iba počas extrakcie. Ak je zadané /allowDelete:Yes, všetky súbory nachádzajúce sa v priečinku určenom parametrom /folder, ktoré nie sú očakávané, sa automaticky odstránia. Ak je zadané /allowDelete:No, nevykoná sa žiadne odstránenie. Ak je zadané /allowDelete:Prompt, je používateľ prostredníctvom konzoly vyzvaný, aby povolil alebo zakázal všetky operácie mazania. Ak je zadané /allowWrite:No, nevykoná sa žiadne odstránenie, a to ani v prípade, že je zadané aj /allowDelete:Yes. |
| /clobber | Voliteľné. Tento argument sa používa iba počas extrakcie. Ak je zadané /clobber, súbory, ktoré majú nastavenú atribúty len na čítanie, sa prepíšu alebo odstránia. Ak nie je zadané, súbory, ktoré majú nastavený atribút len na čítanie, sa neprepíšu ani neodstránia. |
| /errorlevel: {Vypnuté|Chyba|Upozornenie|Informácie|Výrečné} | Voliteľné. Predvolená hodnota je Info. Tento argument naznačuje úroveň protokolovaných informácií na výstupe. |
| /map: <cesta k súboru> | Voliteľné. Cesta a názov súboru .xml, ktorý obsahuje smernice na mapovanie súborov. Ak sa používa počas extrakcie, súbory obvykle načítané zvnútra priečinka určeného parametrom /folder sa načítajú z alternatívnych umiestnení určených v mapovacom súbore. Počas operácie balenia nie sú zapisované súbory, ktoré zodpovedajú smerniciam. |
| /nologo | Voliteľné. Potlačenie bannera za behu. |
| /log: <cesta k súboru> | Voliteľné. Cesta a názov k súboru denníka. Ak súbor už existuje, k súboru sa pripoja nové informácie o protokolovaní. |
| @ <cesta k súboru> | Voliteľné. Cesta a názov súboru, ktorý obsahuje argumenty príkazového riadku pre nástroj. |
| /sourceLoc: <reťazec> | Voliteľné. Tento argument generuje súbor zdroja šablóny a je platný iba pri výpise. Možné hodnoty sú auto alebo kód LCID/ISO pre jazyk, ktorý chcete exportovať. Ak sa použije tento argument, zdroje reťazca z daného miestneho nastavenia sa extrahujú ako neutrálny súbor .resx. Ak je zadané auto alebo je zadaná iba dlhá alebo krátka forma prepínača, použije základné miestne nastavenie alebo riešenie. Môžete použiť skrátenú formu príkazu: /src. |
| /localize | Voliteľné. Extrakcia alebo zlúčenie všetkých reťazcových zdrojov do súborov .resx. Môžete použiť skrátenú formu príkazu: /loc. Možnosť lokalizácie podporuje zdieľané komponenty pre súbory .resx. Viac informácií: Používanie webových zdrojov RESX |
Použite argument príkazu /map
Nasledujúca diskusia podrobne popisuje použitie argumentu /map pre nástroj SolutionPackager.
Súbory, ktoré sú zabudované v automatizovanom zostavovacom systéme, ako sú súbory .xap Silverlight a zostavy doplnkov, sa spravidla nekontrolujú v rámci kontroly zdroja. Webové zdroje už môžu byť prítomné v systéme riadenia zdrojového kódu na miestach, ktoré nie sú priamo kompatibilné s nástrojom SolutionPackager. Zahrnutím parametra /map môže byť nástroj SolutionPackager nasmerovaný na čítanie a balenie takýchto súborov z alternatívnych umiestnení a nie zvnútra priečinka Extract, ako by sa to zvyčajne robilo. Parameter /map musí určovať názov a cestu k súboru XML obsahujúcemu mapovacie direktívy. Tieto direktívy dávajú SolutionPackageru pokyn, aby porovnával súbory podľa ich názvu a cesty a označoval alternatívne umiestnenie na nájdenie zodpovedajúceho súboru. Nasledujúce informácie platia rovnako pre všetky smernice.
Môže byť uvedených viacero direktív vrátane tých, ktoré zodpovedajú identickým súborom. Direktívy uvedené na začiatku súboru majú prednosť pred direktívami uvedenými neskôr.
Ak sa súbor zhoduje s akoukoľvek smernicou, musí sa nájsť aspoň na jednom alternatívnom mieste. Ak sa nenájdu žiadne zodpovedajúce alternatívy, SolutionPackager vydá chybu.
Cesty k priečinkom a súborom môžu byť absolútne alebo relatívne. Relatívne cesty sa vždy vyhodnocujú z priečinka určeného parametrom /folder.
Premenné prostredia môžu byť špecifikované pomocou syntaxe %variable%.
Zástupný znak priečinka „**“ sa môže použiť vo význame „v ľubovoľnom podpriečinku“. Môže sa použiť iba ako posledná časť cesty, napríklad: „c:\folderA\**“.
Zástupné znaky názvu súboru sa môžu používať iba vo formátoch „*.ext“ alebo “*.*”. Žiadny iný vzor nie je podporovaný.
Tu sú popísané tri typy mapovaní smerníc spolu s príkladom, ktorý vám ukáže, ako ich používať.
Mapovanie priečinka
Nasledujúce informácie poskytujú podrobné informácie o mapovaní priečinkov.
Formát XML
<Folder map="folderA" to="folderB" />
Opis
Cesty k súborom, ktoré zodpovedajú priečinku „folderA“, sa prepnú na priečinok „folderB“.
Hierarchia podpriečinkov v rámci každého z nich sa musí presne zhodovať.
Zástupné znaky priečinkov nie sú podporované.
Nie je možné zadať žiadne názvy súborov.
Príklady
<Folder map="folderA" to="folderB" /> <Folder map="folderA\folderB" to="..\..\folderC\" /> <Folder map="WebResources\subFolder" to="%base%\WebResources" />
Mapovanie zo súboru do súboru
Nasledujúce informácie poskytujú podrobnejšie informácie o mapovaní medzi súbormi.
Formát XML
<FileToFile map="path\filename.ext" to="path\filename.ext" />
Opis
Akýkoľvek súbor zodpovedajúci parametru map sa načíta z názvu a cesty zadanej v parametri to .
Pre parameter map:
Názov súboru musí byť určený. Cesta je voliteľná. Ak nie je zadaná žiadna cesta, súbory z ľubovoľného priečinka sa môžu zosúlaďovať.
Zástupné znaky v názvoch súborov nie sú podporované.
Zástupný znak priečinka je podporovaný.
Pre parameter
to:Názov súboru a cesta musia byť určené.
Názov súboru sa môže líšiť od názvu v parametre
map.Zástupné znaky v názvoch súborov nie sú podporované.
Zástupný znak priečinka je podporovaný.
Príklady
<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" />
Vo vyššie uvedenom príklade balíka NuGet sa súbor cr886_PluginPackageTest.nupkg neprepíše, ak už súbor v zadanom umiestnení existuje.
Mapovanie súboru k ceste
Nasledujú podrobné informácie o mapovaní zo súboru na cestu.
Formát XML
<FileToPath map="path\filename.ext" to="path" />
Opis
Akýkoľvek súbor zodpovedajúci parametru map sa načíta z cesty špecifikovanej v parametri to.
Pre parameter map:
Názov súboru musí byť určený. Cesta je voliteľná. Ak nie je zadaná žiadna cesta, súbory z ľubovoľného priečinka sa môžu zosúlaďovať.
Zástupné znaky názvov súborov sú podporované.
Zástupný znak priečinka je podporovaný.
Pre parameter to:
Cesta musí byť určená.
Zástupný znak priečinka je podporovaný.
Názov súboru nesmie byť určený.
Príklady
<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" />
Príklad mapovania
Nasledujúca vzorka kódu XML zobrazuje kompletný mapovací súbor, ktorý umožňuje nástroju SolutionPackager čítať akýkoľvek webový zdroj a dve predvolené generované zostavy z projektu Developer Toolkit s názvom 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>
Spravované a nespravované riešenia
Súbor komprimovaného riešenia Dataverse (.zip) možno exportovať do jedného z dvoch typov, ako je to znázornené tu.
Spravované riešenie
Dokončené riešenie pripravené na import do organizácie. Po importovaní nie je možné pridať ani odstrániť komponenty, hoci môžu voliteľne umožniť ďalšie prispôsobenie. Toto sa odporúča, keď je vývoj riešenia kompletný.
Nespravované riešenie
Otvorené riešenie bez obmedzení toho, čo sa dá pridať, odstrániť alebo zmeniť. Odporúča sa to pri vývoji riešenia.
Formát súboru komprimovaného riešenia sa bude líšiť v závislosti od typu, spravovaného alebo nespravovaného. SolutionPackager dokáže spracovať komprimované súbory riešení oboch typov. Nástroj však nemôže prevádzať jeden typ na iný. Jediným spôsobom, ako previesť súbory riešení na iný typ, napríklad z nespravovaných na spravované, je importovanie súboru .zip nespravovaného riešenia na server Dataverse a potom export riešenia ako spravovaného riešenia.
SolutionPackager dokáže spracovať .zip súbory nespravovaného a spravovaného riešenia ako kombinovanú sadu pomocou parametra /PackageType:Both. Ak chcete vykonať túto operáciu, je potrebné exportovať vaše riešenie dvakrát ako každý typ a súbory .zip pomenovať nasledujúcim spôsobom.
| Nespravovaný súbor .zip: AkýkoľvekNázov.zip | Spravovaný súbor .zip: AkýkoľvekNázov_managed.zip |
Nástroj bude predpokladať prítomnosť spravovaného súboru zip v rovnakom priečinku ako nespravovaný súbor a extrahuje oba súbory do jedného priečinka, pričom zachováva rozdiely, v ktorých existujú spravované aj nespravované komponenty.
Po extrahovaní riešenia ako nespravovaného aj spravovaného je možné z jedného priečinka zabaliť oba alebo každý typ jednotlivo pomocou parametra /PackageType, aby ste určili, ktorý typ sa má vytvoriť. Pri zadaní oboch súborov sa vytvoria dva súbory .zip s použitím vyššie uvedenej konvencie pomenovania. Ak parameter /PackageType chýba pri balení z duálneho spravovaného a nespravovaného priečinka, predvoleným nastavením je vytvorenie jedného nespravovaného súboru .zip.
Riešenie problémov
Ak používate Visual Studio na úpravu zdrojových súborov vytvorených balíčkovačom riešení, môže sa pri opätovnom zabalení zobraziť správa, ktorá je podobná tejto: “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 sa deje preto, že Visual Studio nahradí značky metadát zdrojového súboru dátovými značkami.
Riešenie
Otvorte súbor zdrojov v obľúbenom textovom editore a vyhľadajte a aktualizujte nasledujúce značky:
<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">Zmeňte názov uzla z
<data>na<metadata>.Napríklad tento reťazec:
<data name="Source LCID" xml:space="preserve"> <value>1033</value> </data>Sa zmení na:
<metadata name="Source LCID" xml:space="preserve"> <value>1033</value> </metadata>Toto umožňuje balíčkovaču riešení čítať a importovať súbor zdrojov. Tento problém bol pozorovaný iba pri používaní editora zdrojov Visual Studio.
Pozrite si tiež:
Používanie správy zdrojového kódu so súbormi riešení
Koncepty riešení