Gebruik het SolutionPackager-hulpprogramma om een oplossingbestand te comprimeren en te gebruiken
Gepubliceerd: januari 2017
Is van toepassing op: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
SolutionPackager is een hulpprogramma dat een Microsoft Dynamics 365 gecomprimeerd oplossingbestand omgekeerd kan uiteenhalen in meerdere XML bestanden en andere bestanden zodat deze bestanden eenvoudig kunnen worden beheerd door een bronbeheersysteem. De volgende secties laten zien hoe u dit hulpprogramma uitvoert en hoe u het hulpprogramma gebruikt met beheerde en onbeheerde oplossingen.
In dit onderwerp
Waar het SolutionPackager-hulpprogramma te zoeken
Argumenten van de opdrachtregel SolutionPackager
Gebruik het opdrachtargument /map
Maptoewijzing
Bestand naar bestandtoewijzing
Bestand naar padtoewijzing
Voorbeeld van toewijzing
Beheerde en onbeheerde oplossingen
Waar het SolutionPackager-hulpprogramma te zoeken
U vindt het SolutionPackager.exe hulpprogramma in de map Prullenbakmap van de Microsoft Dynamics 365 SDK download. Download het Microsoft Dynamics CRM SDK-pakket.
Argumenten van de opdrachtregel SolutionPackager
SolutionPackager is een opdrachtregelprogramma dat met de parameters in de volgende tabel kan worden geïdentificeerd.
Argument |
Beschrijving |
---|---|
/action: {Extract|Pack} |
Vereist. De uit te voeren actie. De actie kan het uitpakken zijn van een oplossingbestand .zip naar een map, of het verpakken van een .zip bestand. |
/zipfile: <file path> |
Vereist. Het pad en de naam van een oplossingsbestand .zip. Bij het uitpakken moet het bestand bestaan en wordt er van gelezen. Bij het inpakken wordt het bestand vervangen. |
/folder: <folder path> |
Vereist. Het pad naar een map. Bij het uitpakken, wordt deze map gemaakt en ingevuld met onderdeelbestanden. Bij het inpakken, moet deze map al bestaan en eerder uitgepakte onderdeelbestanden bevatten. |
/packagetype: {Unmanaged|Managed|Both} |
Optioneel. Het type in te pakken proces. De standaardwaarde is onbeheerd. Dit argument kan in de meeste situaties worden weggelaten omdat het verpakkingstype kan worden gelezen van binnen in het .zip bestand of onderdeelbestanden. Bij het uitpakken en wanneer Both is gespecificeerd, moeten beheerde en onbeheerde oplossingsbestanden .zip aanwezig zijn en worden verwerkt in één map. Wanneer bij het inpakken Both is gespecificeerd, worden beheerde en onbeheerde oplossingsbestanden .zip geproduceerd vanaf één map. Voor meer informatie, zie de sectie over het werken met beheerde en onbeheerde oplossingen verderop in dit onderwerp. |
/allowWrite:{Yes|No} |
Optioneel. De standaardwaarde is Yes. Dit argument wordt alleen gebruikt tijdens het uitpakken. Wanneer /allowWrite:No is opgegeven, voert het programma alle bewerkingen uit maar kan het geen bestanden schrijven of verwijderen. De uitpakbewerking kan veilig worden gewoon geëvalueerd zonder bestaande bestanden te overschrijven of verwijderen. |
/allowDelete:{Yes|No|Prompt} |
Optioneel. De standaardwaarde is Prompt. Dit argument wordt alleen gebruikt tijdens het uitpakken. Wanneer /allowDelete:Yes is opgegeven, worden alle bestanden in de map die door de /folder parameter is opgegeven en niet worden verwacht, automatisch verwijderd. Wanneer /allowDelete:No is opgegeven, wordt niets verwijderd. Wanneer /allowDelete:Prompt is opgegeven, wordt de gebruiker via de console gevraagd om alle verwijderbewerkingen toe te staan of te weigeren. Houd er rekening mee dat als /allowWrite:No is opgegeven, er niets wordt verwijderd zelfs als /allowDelete:Yes ook is opgegeven. |
/clobber |
Optioneel. Dit argument wordt alleen gebruikt tijdens het uitpakken. Wanneer /clobber is opgegeven, worden de bestanden met het kenmerk alleen-lezen overschreven of verwijderd. Indien niet opgegeven, worden de bestanden met het kenmerk alleen-lezen niet overschreven of verwijderd. |
/errorlevel: {Off|Error|Warning|Info|Verbose} |
Optioneel. De standaardwaarde is Info. Dit argument aan hoeveel registratie-informatie moet worden uitgevoerd. |
/map: <file path> |
Optioneel. Het pad en de naam van een .xml bestand met richtlijnen voor de bestandstoewijzing. Bij gebruik tijdens het uitpakken, worden bestanden die normaal worden gelezen vanuit de map die is opgegeven door de /folder parameter, gelezen vanaf alternatieve locaties, zoals opgegeven in het toewijzingsbestand. Tijdens een verpakkingsbewerking, worden bestanden die overeenstemmen met de richtlijnen, niet geschreven. |
/nologo |
Optioneel. De banner tijdens runtime onderdrukken. |
/log: <file path> |
Optioneel. Een pad en een naam naar een logboekbestand. Als het bestand al bestaat, wordt de nieuwe logboekinformatie toegevoegd aan het bestand. |
@ <file path> |
Optioneel. Een pad en een naam voor een bestand dat opdrachtregelargumenten voor het hulpprogramma bevat. |
/sourceLoc: <string> |
Optioneel. Dit argument genereert een sjabloonbronbestand en is alleen geldig bij het uitpakken. De mogelijke waarden zijn auto of een LCID/ISO-code voor de taal die u wilt exporteren. Als dit argument dit wordt gebruikt, worden de tekenreeksresources van de opgegeven locatie uitgepakt als een neutraal .resx-bestand. Als auto of alleen de korte of de lange vorm van de schakelaar is opgegeven, worden de basislandinstelling of de oplossing gebruikt. U kunt de korte vorm gebruiken van de opdracht: /src. |
/localize |
Optioneel. Alle tekenreeksresources in .resx-bestanden samenvoegen of uitpakken. U kunt de korte vorm gebruiken van de opdracht: /loc. |
Gebruik het opdrachtargument /map
De volgende discussie bespreekt het gebruik van het argument /map naar het SolutionPackager programma.
Bestanden die in een geautomatiseerd buildsysteem worden opgebouwd, zoals .xapSilverlight bestanden en plug-inassemblies, worden meestal niet opgenomen in bronbeheer. Webresources kunnen al aanwezig zijn in bronbeheer op locaties die niet rechtstreeks compatibel zijn met het SolutionPackager-hulpprogramma,. Door de parameter /map op te nemen, kan het SolutionPackager hulpprogramma worden opgedragen om dergelijke bestanden te lezen en in te pakken vanaf andere locaties en niet vanuit de map Extract zoals gebruikelijk. De parameter /map moet de naam en het pad opgeven naar een XML bestand met toewijzingrichtlijnen die SolutionPackager opdragen om bestanden te koppelen volgens hun bestandsnaam en -pad, en de alternatieve locatie aangeven om het bijpassende bestand te zoeken. De volgende informatie geldt evenveel voor alle richtlijnen.
Meerdere richtlijnen kunnen worden weergegeven, waaronder richtlijnen die identieke bestanden zoeken. De richtlijnen die vroeg in het bestand staan, krijgen de voorkeur ten opzichte van de richtlijnen die verder voorkomen.
Als een bestand aan een richtlijn wordt gekoppeld, moet het op ten minste één andere locatie worden gevonden. Als er geen overeenkomende alternatieven worden gevonden, geeft het SolutionPackager een fout.
Map- en bestandspaden kunnen absoluut of relatief zijn. Relatieve paden worden altijd geëvalueerd vanuit de map die is opgegeven door de /folder parameter.
Omgevingvariabelen kunnen worden opgegeven met een %variable% syntaxis.
Een mapjokerteken "**" kan worden gebruikt om "in elke submap" aan te geven. Dit hulpprogramma kan alleen als laatste deel van een pad worden gebruikt, bijvoorbeeld: "c:\folderA\**".
De jokertekens voor een bestandsnaam mogen alleen worden gebruikt in de vormen “*.ext” of "*.*". Er wordt geen ander patroon ondersteund.
De drie types richtlijnentoewijzingen worden hier beschreven, samen met een voorbeeld dat toont hoe u deze kunt gebruiken.
Maptoewijzing
De volgende tabel toont gedetailleerde informatie over de maptoewijzing.
Xml-indeling |
<Folder map="folderA" to="folderB" /> |
Beschrijving |
Bestandspaden die overeenstemmen met "folderA" worden omgezet naar "folderB".
|
Voorbeelden |
|
Bestand naar bestandtoewijzing
De volgende tabel toont gedetailleerde informatie over de bestand-naar bestandtoewijzing.
Xml-indeling |
<FileToFile map="path\filename.ext" to="path\filename.ext" /> |
Beschrijving |
Elk bestand dat overeenstemt met de parameter map wordt gelezen vanaf de naam en het pad in de opgegeven parameter to. Voor de map parameter:
Voor de to parameter:
|
Voorbeelden |
|
Bestand naar padtoewijzing
De volgende tabel toont gedetailleerde informatie over de bestand-naar-padtoewijzing.
Xml-indeling |
<FileToPath map="path\filename.ext" to="path" /> |
Beschrijving |
Elk bestand dat overeenstemt met de parameter map wordt gelezen vanaf het pad in de opgegeven parameter to. Voor de map parameter:
Voor de to parameter:
|
Voorbeelden |
|
Voorbeeld van toewijzing
Het volgende XML codevoorbeeld toont een volledig toewijzingsbestand dat ervoor zorgt dat het SolutionPackager hulpprogramma elke webresource en twee standaard gegenereerde assemblies kan lezen vanaf Developer Toolkit projecten met de naam 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>
Beheerde en onbeheerde oplossingen
Een bestand met Microsoft Dynamics 365 gecomprimeerde oplossing (.zip) kan worden geëxporteerd in een of twee types, zoals hier getoond.
- Beheerde oplossing
Een voltooide oplossing, klaar om in een organisatie te worden geïmporteerd. Na het importeren, kunnen er geen onderdelen worden toegevoegd of verwijderd, hoewel verdere aanpassing nog steeds is toegestaan. Dit is aanbevolen wanneer de ontwikkeling voor de oplossing is voltooid.
- Onbeheerde oplossing
Een open oplossing zonder beperkingen over wat kan worden toegevoegd, verwijderd, of aangepast. Dit is aanbevolen tijdens de ontwikkeling van een oplossing.
De indeling van een gecomprimeerd oplossingbestand is verschillend volgens type, beheerd of onbeheerd. Het SolutionPackager kan gecomprimeerde oplossingsbestanden van elke type verwerken. Het hulpprogramma kan echter niet één type omzetten naar een ander. De enige manier om oplossingsbestanden om te zetten naar een ander type, bijvoorbeeld van onbeheerd naar beheerd, is door het onbeheerde oplossingsbestand .zip te importeren in een Microsoft Dynamics 365 server en vervolgens de oplossing te exporteren als een beheerde oplossing.
Het SolutionPackager kan onbeheerde en beheerde oplossingsbestanden .zip verwerken als een gecombineerde set via de /PackageType:Both parameter. Om deze bewerking uit te voeren, is het noodzakelijk om uw oplossing twee keer te exporteren als elk type, die de .zip bestanden als volgt benoemt.
Niet-beheerd .zip bestand: AnyName.zip |
Beheerd .zip bestand: AnyName_managed.zip |
Het hulpprogramma veronderstelt de aanwezigheid van het beheerde zip bestand in dezelfde map als het onbeheerde bestand en pakt beide bestanden uit in één map, waarbij de verschillen worden behouden tussen beheerde en onbeheerde onderdelen.
Nadat een oplossing is uitgepakt als beheerd en onbeheerd, is het mogelijk om vanaf die map beide in te pakken, of elk type afzonderlijk, met de parameter /PackageType om het type te selecteren dat u wilt maken. Bij het opgeven van beide, worden er twee .zip bestanden gemaakt met de naamconventie zoals hierboven. Als de /PackageType parameter ontbreekt wanneer u inpakt vanaf dubbele beheerde en onbeheerde map ontbreekt, wordt standaard één onbeheerd .zip bestand gemaakt.
Probleemoplossing
Als u Microsoft Visual Studio 2012 gebruikt om bronbestanden te bewerken die zijn gemaakt door de oplossingverpakker, kunt u een bericht als het volgende ontvangen als u opnieuw inpakt: "Kan versie-id van het bronbestand <bestandsnaam>.resx niet bepalen. Het bronbestand moet worden geëxporteerd van het hulpmiddel solutionpackager.exe om te worden gebruikt als onderdeel van het verpakkingsproces." Dit gebeurt omdat Visual Studio de metagegevenslabels van het bronbestand vervangt door gegevenslabels.
Oplossing
Open het bronbestand in uw favoriete tekstverwerker en zoek en bewerk de volgende labels:
<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">
Wijzig de knooppuntnaam van <data> naar <metadata>.
Deze tekenreeks bijvoorbeeld:
<data name="Source LCID" xml:space="preserve"> <value>1033</value> </data>
Wijzigt in:
<metadata name="Source LCID" xml:space="preserve"> <value>1033</value> </metadata>
Hierdoor kan de oplossingverpakker het bronbestand lezen en importeren. Dit probleem werd alleen geobserveerd bij gebruik van de Visual Studio bronbewerker.
Zie ook
Oplossinghulpprogramma's voor teamontwikkeling
Bronbeheer gebruiken met oplossingsbestanden
Solution component file reference (SolutionPackager)
Inleiding tot oplossingen
Microsoft Dynamics 365
© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht