SolutionPackager eszköz
A SolutionPackager egy olyan eszköz, amely visszafordítható módon képes a Microsoft Dataverse tömörített megoldásfájlt több XML-fájlra és más fájlra bontani. Ezután könnyedén kezelheti ezeket a fájlokat egy verziókövetési rendszer használatával. A cikkből megtudhatja, hogyan futtatható az eszköz, és hogyan használható felügyelt és nem felügyelt megoldásokkal.
Fontos
A SolutionPackager eszköz már nem az ajánlott módszer a megoldások kicsomagolására és csomagolására. A SolutionPackager eszköz képességei be vannak építve a Power Platform CLI-be. A pac solution
parancs számos műveletet tartalmaz, beleértve unpack
a, pack
, clone
, és sync
amelyek a SolutionPackager eszköz ugyanazon mögöttes képességeit tartalmazzák.
Hol található a SolutionPackager?
A SolutionPackager eszköz terjesztése a Microsoft . CrmSdk.CoreTools NuGet csomag. A program telepítéséhez kövesse az alábbi lépéseket.
- Töltse le a NuGet csomagot.
- Nevezze át a csomag fájlnévkiterjesztését .nupkg-ról .zip-re.
- Bontsa ki a tömörített (zip) fájl tartalmát.
Keresse meg a SolutionPackager.exe végrehajtható fájlt a <kibontott mappanév>/contents/bin/coretools mappában. Futtassa a programot a coretools mappából, vagy adja hozzá a mappát a PATH-hoz.
A SolutionPackager parancssori argumentumai
A SolutionPackager olyan parancssori eszköz, amely a következő táblázatban látható paraméterekkel hívható meg.
Argumentum | Description |
---|---|
/action: {Extract|Csomag} | Szükséges. A végrehajtandó művelet. A művelet vagy egy megoldás .zip-fájljának egy mappába történő kibontása vagy egy mappa .zip-fájlba való becsomagolása lehet. |
/zipfile: <fájl elérési útja> | Szükséges. A megoldás .zip-fájljának elérési útja és neve. Kibontáskor a fájlnak léteznie kell és olvashatónak kell lennie. Becsomagoláskor a rendszer lecseréli a fájlt. |
/folder: <mappa elérési útja> | Szükséges. A mappa elérési útja. A kibontáskor a rendszer létrehozza ezt a mappát, és feltölti az összetevő fájljaival. A becsomagolásnál a mappának már léteznie kell, és az összetevő előzőleg kibontott fájljait kell tartalmaznia. |
/packagetype: {Unmanaged|Managed|Mindkettő} | Opcionális. A feldolgozandó csomag típusa. Az alapértelmezett érték: „Nem felügyelt”. Ez az argumentum a legtöbb esetben elhagyható, mert a csomag típusa kiolvasható a .zip-fájlból vagy az összetevő fájljaiból. Ha kitömörítéskor a Mindkettő beállítást használja, a felügyelt és a nem felügyelt megoldás .zip-fájljainak jelen kell lenniük, és a fájlokat egyetlen mappába kell kitömöríteni. Ha a csomagolás és a Mindkettő meg van adva, a felügyelt és a nem felügyelt megoldási .zip fájlok egy mappából jönnek létre. További információt a cikk későbbi, a felügyelt és nem felügyelt megoldások használatáról szóló szakaszában talál. |
/allowWrite:{Yes|No} | Opcionális. Az alapértelmezett érték Igen. Ez az argumentum csak kitömörítéskor használható. Ha az /allowWrite:Nem megoldást használja, az eszköz minden műveletet végrehajt, de nem tud fájlokat írni vagy törölni. A kitömörítési művelet a meglévő fájlok felülírása vagy törlése nélkül, biztonságosan kiértékelhető. |
/allowDelete:{Yes|No|Javaslat} | Opcionális. Az alapértelmezett érték: „Üzenet”. Ez az argumentum csak kitömörítéskor használható. Ha az /allowDelete:Yes van megadva, a paraméter által megadott mappában található /folder fájlok automatikusan törlődnek. Ha az /allowDelete:No paraméter van megadva, nem történik törlés. Ha az /allowDelete:Üzenet megoldást használja, a rendszer rákérdez a konzolon keresztül, hogy a felhasználó jóváhagyja-e a törlési műveleteket. Ha az /allowWrite:No paraméter meg van adva, akkor sem történik törlés, még akkor sem, ha az /allowDelete:Yes is meg van adva. |
/clobber | Opcionális. Ez az argumentum csak kitömörítéskor használható. A /clobber használatakor az írásvédett attribútumkészlettel rendelkező fájlokat felülírja vagy törli a rendszer. Ha nincs megadva, az írásvédett attribútumkészlettel rendelkező fájlok nem lesznek felülírva vagy törölve. |
/errorlevel: {Off|Error|Warning|Info|Részletes} | Opcionális. Az alapértelmezett érték: „Információ”. Ez az argumentum a naplózási adatok kimenetre vonatkozó szintjét jelzi. |
/map: <fájl elérési útja> | Opcionális. Egy hozzárendelési irányelveket tartalmazó .xml-fájl elérési útja és neve. Ha kitömörítéskor használja, a rendszer az általában a /folder paraméterben megadott mappából beolvasott fájlokat a leképezési fájlban megadott másodlagos helyekről olvassa be. Tömörítéskor a rendszer nem írja az irányelvekkel egyező fájlokat. |
/nologo | Opcionális. A fejléc elrejtése futásidőben. |
/log: <fájl elérési útja> | Opcionális. A naplófájl elérési útja és neve. Ha a fájl már létezik, a rendszer az új naplózási adatokat a fájlhoz fűzi hozzá. |
@ <fájl elérési útja> | Opcionális. Az eszközhöz tartozó parancssori argumentumokat tartalmazó fájl elérési útja és neve. |
/sourceLoc: <sztring> | Opcionális. Ez az argumentum egy sablonerőforrás-fájlt hoz létre, és csak kitömörítéskor érvényes. A lehetséges értékek: auto vagy az exportálni kívánt nyelv LCID-/ISO-kódja. Az argumentum használatakor a rendszer a megadott területi beállításokból származó sztringerőforrásokat semleges. resx-fájlként bontja ki. Ha az auto értéket használja vagy a kapcsolónak csak a hosszú vagy a rövid alakját adja meg, akkor a területi alapbeállítást vagy a megoldást használja a rendszer. Használhatja a parancs rövid formáját: /src. |
/localize | Opcionális. Kibontja vagy egyesíti az összes sztringerőforrást .resx-fájlokba. Használhatja a parancs rövid formáját: /loc. A honosítás beállítás támogatja a .resx fájlok megosztott összetevőit. További információ: RESX webes erőforrások használata |
A /map parancsargumentum használata
A következő beszélgetés a /map argumentum SolutionPackager eszközön való használatát ismerteti.
Az automatizált buildrendszerbe beépített fájlokon (például a .xap Silverlight-fájlok és a beépülőmodul-szerelvények) általában nem történik forrásellenőrzés. Előfordulhat, hogy a webes erőforrások már jelen vannak a verziókövetésben olyan helyeken, amelyek nem közvetlenül kompatibilisek a SolutionPackager eszközzel. A /map paraméter befoglalásával a SolutionPackager utasítható, hogy a másodlagos helyeken lévő fájlokat olvassa be és csomagolja be, ne a kitömörítési mappában lévőket (ahogy egyébként történne). A /map paraméternek meg kell adnia a leképezés direktívákat tartalmazó XML-fájl nevét és elérési útját. Ezek az utasítások arra utasítják a SolutionPackager eszközt, hogy név és elérési út alapján egyeztesse a fájlokat, és adja meg az egyező fájl megtalálásának alternatív helyét. A következő információk minden irányelvre egyformán vonatkoznak.
Több direktíva is szerepelhet a listában, beleértve azokat is, amelyek azonos fájloknak felelnek meg. A fájl elején felsorolt irányelvek elsőbbséget élveznek a később felsorolt irányelvekkel szemben.
Ha egy fájlt a rendszer egyeztet egy irányelvvel, akkor legalább egy másodlagos helyen meg kell találni. Ha nem talál megfelelő alternatívát, a SolutionPackager hibát jelez.
A mappa és a fájl elérési útja abszolút vagy relatív lehet. A relatív elérési utakat a rendszer mindig a /folder paraméterben megadott mappából értékeli ki.
A környezeti változók a %variable% szintaxissal adhatók meg.
A "**" mappa helyettesítő karaktere azt jelentheti, hogy "bármely almappában". Csak az elérési út utolsó részeként használható, például: "c:\folderA\**".
A fájlnevek helyettesítő karakterei csak „*.ext” vagy „*.*” formában használhatók. Más megoldás nem támogatott.
Az irányelvek leképezésének három típusát ismertetjük itt. Ezenkívül egy, a használati módot bemutató példát is talál.
Mappaleképezés
Az alábbi információk részletes információkat tartalmaznak a leképezés mappáról.
XML formátum
<Folder map="folderA" to="folderB" />
Leírás
Az "A" mappának megfelelő fájlútvonalak "B" mappára váltanak.
Az alájuk tartozó almappák hierarchiájának pontosan meg kell egyeznie.
A mappa helyettesítő karakterei nem támogatottak.
Nem lehet fájlneveket megadni.
Példák
<Folder map="folderA" to="folderB" /> <Folder map="folderA\folderB" to="..\..\folderC\" /> <Folder map="WebResources\subFolder" to="%base%\WebResources" />
Fájl-fájl leképezés
Az alábbi információk további részleteket tartalmaznak a fájlok közötti leképezés.
XML formátum
<FileToFile map="path\filename.ext" to="path\filename.ext" />
Leírás
A paraméternek megfelelő map
fájlokat a paraméterben to
megadott névből és elérési útból olvassa be a rendszer.
A map
paraméter esetében:
Meg kell adni fájlnevet. Az elérési út megadása nem kötelező. Ha nem ad meg elérési utat, akkor bármely mappából származó fájlok egyeztethetők.
A fájlnév helyettesítő karakterei nem támogatottak.
A mappához használható helyettesítő karakter.
A
to
paraméter esetében:Meg kell adni fájlnevet és elérési utat.
A fájlnév eltérhet a
map
paraméterben szereplő névtől.A fájlnév helyettesítő karakterei nem támogatottak.
A mappához használható helyettesítő karakter.
Példák
<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" />
A fenti NuGet csomagpéldában a cr886_PluginPackageTest.nupkg fájl nem íródik felül, ha a fájl már létezik a megadott helyen.
Fájl-elérési út leképezés
Az alábbiakban a fájl-elérési út leképezésről talál részletes információkat.
XML formátum
<FileToPath map="path\filename.ext" to="path" />
Leírás
A map
paraméterrel egyező fájlok beolvasása a to
paraméterben megadott elérési úttal történik.
A map
paraméter esetében:
Meg kell adni fájlnevet. Az elérési út megadása nem kötelező. Ha nem ad meg elérési utat, akkor bármely mappából származó fájlok egyeztethetők.
A fájlnevekhez használhatók helyettesítő karakterek.
A mappához használható helyettesítő karakter.
A to
paraméter esetében:
Meg kell adnia elérési utat.
A mappához használható helyettesítő karakter.
Fájlnevet nem szabad megadni.
Példák
<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" />
Leképezés – példa
A következő XML-mintakód egy olyan teljes leképezési fájlt mutat be, amely lehetővé teszi, hogy a SolutionPackager olvasni tudja akármelyik webes erőforrást és a két alapértelmezett létrehozott szerelvényt a fejlesztői eszközkészlet CRMDevTookitSample nevű projektjéből.
<?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>
Felügyelt és nem felügyelt megoldások
A Dataverse tömörített megoldásfájlja (.zip) fájl az itt látható két típus egyikébe exportálható.
felügyelt megoldás
A befejezett megoldás készen áll a szervezetbe való importálásra. Az importálást követően összetevők nem vehetők fel és nem távolíthatók el, de szükség esetén végezhető további testreszabás. Ez akkor javasolt, ha a megoldás fejlesztése befejeződött.
Nem felügyelt megoldás
Olyan nyitott megoldás, amely nem tartalmaz a hozzáadásra, az eltávolításra vagy a módosításra vonatkozó korlátozást. A megoldások fejlesztése során ez javasolt.
A tömörített megoldásfájlok formátuma a típustól függően eltérhet: felügyelt vagy nem felügyelt lesz. A SolutionPackager bármelyik típusú tömörített megoldásfájlt fel tudja dolgozni. Az eszköz azonban nem tudja az egyik típust a másikra módosítani. A megoldásfájlok másik típusra való átalakításának (például nem felügyeltről felügyelt megoldássá alakításának) egyetlen módja a nem kezelt megoldás .zip-fájljának importálása egy Dataverse-kiszolgálóra, majd a megoldás felügyelt megoldásként való exportálása.
A SolutionPackager összetett csoportként fel tudja dolgozni a nem felügyelt és a felügyelt megoldás .zip-fájljait a /PackageType:Mindkettő paraméterrel. A művelet végrehajtásához a megoldást kétszer (vagyis mindkét megoldásként egyszer) kell exportálni. A .zip-fájlokat a következőképpen kell elnevezni.
Nem felügyelt .zip-fájl: AnyName.zip | Felügyelt .zip-fájl: AnyName_managed.zip |
Az eszköz azt feltételezi, hogy a felügyelt zip-fájl ugyanabban a mappában található, mint a nem felügyelt fájl, és mindkét fájlt egyetlen mappába bontja ki, megőrizve a felügyelt és a nem felügyelt összetevők közötti különbségeket.
A megoldás nem felügyeltként és felügyeltként történő kibontása után az adott mappából mindkét megoldást be lehet csomagolni; az egyes típusokat egyenként is be lehet csomagolni. Utóbbi esetben a /PackageType paraméterrel adja meg a létrehozandó típust. Mindkét fájl megadásakor két .zip fájl jön létre a fenti elnevezési konvenció használatával. Ha a /PackageType paraméter hiányzik, ha egyszerre csomagol be elemeket felügyelt és nem felügyelt mappából, alapértelmezés szerint egy nem felügyelt .zip-fájl jön létre.
Hibaelhárítás
Ha a Visual Studio használatával szerkeszti a megoldáscsomagolóval létrehozott erőforrásfájlokat, akkor az újracsomagoláskor a következőhöz hasonló üzenet jelenhet meg: “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.”
Ez azért történik, mert a Visual Studio az erőforrásfájl metaadatcímkéit adatcímkékre cseréli.
Megoldás
Nyissa meg az erőforrásfájlt egy szövegszerkesztőben, és keresse meg, majd frissítse a következő címkéket:
<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">
A csomópont nevét módosítsa a
<data>
értékről a<metadata>
névre.Ez a sztring például:
<data name="Source LCID" xml:space="preserve"> <value>1033</value> </data>
A következőre módosul:
<metadata name="Source LCID" xml:space="preserve"> <value>1033</value> </metadata>
Ez lehetővé teszi, hogy a megoldáscsomagoló olvasni és importálni tudja az erőforrásfájlt. Ez a probléma csak a Visual Studio erőforrás-szerkesztőjének használatakor jelentkezik.
Kapcsolódó információk
A verziókövetés használata megoldásfájlokkal
Megoldási fogalmak