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.

Hol található a SolutionPackager?

A SolutionPackager a Microsoft.CrmSdk.CoreTools NuGet csomag része. A program telepítéséhez kövesse az alábbi lépéseket.

  1. Töltse le a NuGet csomagot.
  2. Nevezze át a csomag fájlnévkiterjesztését .nupkg-ról .zip-re.
  3. Bontsa ki a tömörített (zip) fájl tartalmát.

A SolutionPackager.exe végrehajtható fájlt a <kibontott mappanév>/contents/bin/coretools mappában találja. 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ó a témakör későbbi részében, a felügyelt és a nem felügyelt megoldások használatát ismertető részben található.
/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:Igen megoldást használja, a /folder paraméterrel meghatározott mappában lévő nem várt fájlokat automatikusan törli a rendszer. 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ók: 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 megfeleltetési utasításokat 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 jelölje 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 "" használható "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 nyújtanak a mappaleképezésről.

Xml-formátum

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

Ismerteté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ésről.

Xml-formátum

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

Ismertetés

A map paraméterrel egyező fájlok beolvasása a to paraméterben megadott névvel és 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 nem használhatók helyettesítő karakterek.

  • 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ájlnevekhez nem használhatók helyettesítő karakterek.

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

Vegye figyelembe, hogy 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 sub-folders -->  
       <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

  1. 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">  
    
    
  2. 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

Forrásellenőrzés használata megoldásfájlokkal

Megoldási elvek