Del via


SolutionPackager-verktøy

SolutionPackager er et verktøy som kan dele opp en komprimert Microsoft Dataverse-løsningsfil til flere XML-filer og andre filer. Du kan deretter enkelt behandle disse filene ved å bruke et kildekontrollsystem. Avsnittene nedenfor viser hvordan du kjører verktøyet og hvordan du bruker verktøyet med administrerte og uadministrerte løsninger.

Finne SolutionPackager-verktøyet

SolutionPackager-verktøyet distribueres som en del av Microsoft.CrmSdk.CoreTools NuGet-pakken. Følg disse trinnene for å installere programmet.

  1. Last ned NuGet-pakken.
  2. Endre navnet på pakkefilnavnet fra NUPKG til ZIP.
  3. Pakk ut innholdet i komprimerte (zip) filen.

Du finner filen SolutionPackager.exe i mappen <navn-på-utpakket-mappe>/contents/bin/coretools. Kjør programmet fra mappen coretools, eller legg til mappen i PATH.

Kommandolinjeargumenter for SolutionPackager

SolutionPackager er et kommandolinjeverktøy som kan startes med parameterne som identifiseres i tabellen nedenfor.

Argument Bekrivelse
/action: {Extract|Pakke} Påkrevd. Handlingen som skal utføres. Handlingen kan enten være å pakke ut en løsnings .zip-fil i en mappe, eller å pakke en mappe i en .zip-fil.
/zipfile: <file path> Påkrevd. Banen til og navnet på en løsnings -zip-filen. Når du pakker ut, må filen finnes og være lesbar. Ved pakking blir filen erstattet.
/folder: <folder path> Påkrevd. Banen til en mappe. Når du pakker ut, opprettes og fylles denne mappen ut med komponentfiler. Når du pakker, må denne mappen allerede eksistere og inneholde komponentfiler som allerede er pakket ut.
/packagetype: {Unmanaged|Managed|Begge} Valgfritt. Typen pakke som skal behandles. Standardverdien er Uadministrert. Dette argumentet kan utelates i de fleste tilfeller fordi pakketypen kan leses fra ZIP-filen eller komponentfiler. Når du pakker ut og Begge er angitt, må administrerte og uadministrerte løsnings. zip-filer finnes og behandles i én enkelt mappe. Når du pakker og Begge er angitt, blir administrerte og uadministrerte løsnings. zip-filer produsert fra én mappe. Hvis du vil ha mer informasjon, kan du se delen om hvordan du arbeider med administrerte og uadministrerte løsninger senere i dette emnet.
/allowWrite:{Yes|Nei} Valgfritt. Standardverdien er Ja. Dette argumentet brukes bare under en utpakking. Når /allowWrite:Nei er angitt, utfører verktøyet alle operasjoner, men forhindres fra å skrive eller slette filer. Utpakkingsoperasjonen kan trygt vurderes uten å overskrive eller slette eksisterende filer.
/allowDelete:{Yes|No|Ledetekst} Valgfritt. Standardverdien er Ledetekst. Dette argumentet brukes bare under en utpakking. Når /allowDelete:Ja er angitt, blir filer i mappen som er angitt av /folder-parameteren som ikke forventes, automatisk slettet. Når /allowDelete:Nei er angitt, vil ingen slettinger forekomme. Når /allowDelete:Ledetekst er angitt, blir brukeren bedt via konsollen om å tillate eller nekte alle sletteoperasjoner. Hvis /allowWrite:Nei angis, utføres ingen sletting selv om /allowDelete:Ja også er angitt.
/clobber Valgfritt. Dette argumentet brukes bare under en utpakking. Når /clobber er angitt, blir filer som har attributtet skrivebeskyttet angitt, overskrevet eller slettet. Når dette ikke er angitt, blir filer med attributtet skrivebeskyttet ikke overskrevet eller slettet.
/errorlevel: {Off|Error|Warning|Info|Detaljert} Valgfritt. Standardverdien er Informasjon. Dette argumentet angir nivået for logging av informasjon til utdata.
/map: <file path> Valgfritt. Banen til og navnet på en XML-fil som inneholder filtilordningsdirektiver. Når denne brukes under en utpakking, blir filer som vanligvis leses fra mappen som er angitt av parameteren /folder, lest fra alternative plasseringer som angitt i tilordningsfilen. Under en pakkeoperasjon blir ikke filer som samsvarer med direktivene, skrevet.
/nologo Valgfritt. Undertrykk banneret ved kjøretid.
/log: <file path> Valgfritt. En bane og et navn til en loggfil. Hvis filen finnes fra før, legges det til ny logginformasjon i filen.
@ <file path> Valgfritt. En bane og et navn til en fil som inneholder kommandolinjeargumenter for verktøyet.
/sourceLoc: <string> Valgfritt. Dette argumentet genererer en malressursfil og er bare gyldig ved utpakking.

Mulige verdier er auto eller en LCID/ISO-kode for språket du vil eksportere. Når du bruker dette argumentet, blir strengressursene fra angitt nasjonale innstilling pakket ut som en nøytral RESX-fil. Hvis auto eller bare den lange eller korte formen av bryteren er angitt, brukes den grunnleggende nasjonale innstillingen eller løsningen. Du kan bruke kortformen av kommandoen: /src.
/localize Valgfritt. Pakk ut eller slå sammen alle strengressurser i RESX-filer. Du kan bruke kortformen av kommandoen: /loc. Alternativet for lokalisering støtter delte komponenter for RESX-filer. Mer informasjon: Bruke RESX-webressurser

Bruke kommandoargumentet /map

Følgende diskusjon beskriver bruken av /map-argumentet til SolutionPackager-verktøyet.

Filer som er bygd inn i et automatisk Build-system, for eksempel .xap Silverlight-filer og plugin-modulsamlinger, blir vanligvis ikke sjekket inn i kildekontrollen. Det kan hende at webressurser allerede finnes i kildekontrollen på steder som ikke er direkte kompatible med SolutionPackager-verktøyet. Ved å inkludere /map-parameteren kan du angit at SolutionPackager-verktøyet skal lese og pakke slike filer fra andre steder, og ikke fra i utpakkingsmappen slik det vanligvis vil bli gjort. Parameteren /map må angi navnet og banen til en XML-fil som inneholder tilordningsdirektiver. Disse direktivene ber SolutionPackager om å samsvare filene etter navn og bane, og angir den alternative plasseringen for å finne den samsvarende filen. Følgende informasjon gjelder for alle direktiver likt.

  • Det kan hende at flere direktiver vises, inkludert direktivene som samsvarer med identiske filer. Direktiver som står oppført tidlig i filen, prioriteres foran direktiver som er oppført senere.

  • Hvis en fil samsvarer med et direktiv, må den finnes i minst ett alternativt sted. Hvis det ikke blir funnet noen tilsvarende alternativer, vil SolutionPackager sende en feilmelding.

  • Mappe- og filbaner kan være absolutt eller relative. Relative baner evalueres alltid fra mappen som er angitt av parameteren /folder.

  • Miljøvariabler kan spesifiseres ved å bruke en %variable%-syntaks.

  • Et mappe-jokertegn “**” kan brukes til å bety "i alle undermappene". Det kan bare brukes som siste del av en bane, for eksempel: “c:\folderA\**”.

  • Jokertegn for filnavn kan bare brukes i skjemaene "*.ext" eller “*.*”. Ingen andre mønstre støttes.

    De tre typene direktiver er beskrevet her, sammen med et eksempel som viser hvordan du bruker dem.

Mappetilordning

Nedenfor finner du detaljert informasjon om mappetilordning.

Xml-format

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

Beskrivelse

Filbaner som samsvarer med "folderA", blir byttet til "folderB".

  • Hierarkiet i undermapper under hver må samsvare nøyaktig.

  • Støtter ikke mappe-jokertegn.

  • Du kan ikke angi filnavn.

    Eksempler

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

Fil til fil-tilordning

Nedenfor finner du mer detaljert informasjon om fil til fil-tilordning.

Xml-format

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

Beskrivelse

Alle filer som samsvarer med map-parameteren, leses fra navnet og banen som er angitt i to-parameteren.

For map-parameteren:

  • Et filnavn må angis. Banen er valgfri. Hvis det ikke er angitt en bane, kan det hende at filer fra alle mapper samsvares.

  • Støtter ikke jokertegn for filnavn.

  • Mappe-jokertegnet støttes.

    For to-parameteren:

  • Et filnavn og bane må angis.

  • Filnavnet kan være forskjellig fra navnet i map-parameteren.

  • Støtter ikke jokertegn for filnavn.

  • Mappe-jokertegnet støttes.

Eksempler

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

Vær oppmerksom på at i NuGet-pakkeeksempelet ovenfor overskrives ikke cr886_PluginPackageTest.nupkg hvis filen allerede finnes på den angitte plasseringen.

Fil til bane-tilordning

Nedenfor finner du detaljert informasjon om fil til bane-tilordning.

Xml-format

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

Beskrivelse

Alle filer som samsvarer med map-parameteren, leses fra banen som er angitt i to-parameteren.

For map-parameteren:

  • Et filnavn må angis. Banen er valgfri. Hvis det ikke er angitt en bane, kan det hende at filer fra alle mapper samsvares.

  • Støtter jokertegn for filnavn.

  • Mappe-jokertegnet støttes.

For to-parameteren:

  • Det må være angitt en bane.

  • Mappe-jokertegnet støttes.

  • Et filnavn må ikke angis.

    Eksempler

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

Tilordningseksempel

Følgende eksempel på XML-kode viser en fullstendig tilordningsfil som gjør det mulig for SolutionPackager-verktøyet å lese alle webressurser og de to standardsamlingene som er generert av et utviklerverktøyprosjekt med navnet 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>  

Administrerte og uadministrerte løsninger

En Dataverse-komprimert løsning (zip-fil) kan eksporteres i én av to typer som vist her.

Administrert løsning
En fullstendig løsning som er klar til å importeres til en organisasjon. Når den er importert, kan ikke komponenter legges til eller fjernes, men de kan også tillate ytterligere tilpassing. Dette anbefales når utviklingen av løsningen er fullført.

Uadministrert løsning
En åpen løsning uten begrensninger for hva som kan legges til, fjernes eller endres. Dette anbefales under utvikling av en løsning.

Formatet til en komprimert løsningsfil vil være forskjellig avhengig av typen, enten administrert eller uadministrert. SolutionPackager kan behandle komprimerte løsningsfiler av begge typer. Verktøyet kan imidlertid ikke konvertere en type til en annen. Den eneste måten å konvertere løsningsfiler til en annen type, for eksempel fra uadministrert til administrert, er å importere den uadministrerte løsnings . zip-filen til en Dataverse-server og deretter eksportere løsningen som en administrert løsning.

SolutionPackager kan behandle uadministrerte og administrerte løsnings .zip-filer som et kombinert sett via parameteren /PackageType:Both For å kunne utføre denne operasjonen er det nødvendig å eksportere løsningen to ganger som hver type, og navngi zip-filene som følger.

Uadministrert .zip-fil: AnyName.zip Administrert .zip-fil: AnyName_managed.zip

Verktøyet forutsetter at den administrerte zip-filen er i samme mappe brukes som den uadministrerte filen, og pakker ut begge filene i én enkelt mappe som beholder forskjellene der administrerte og uadministrerte komponenter finnes.

Når en løsning er pakket ut både som uadministrert og administrert, er det mulig å pakke begge fra denne enkeltmappen, eller hver type enkeltvis, ved hjelp av /PackageType-parameteren for å angi hvilken type som skal opprettes. Når du angir begge filene, lages det to .zip-filer ved hjelp av navnekonvensjonen som ovenfor. Hvis /PackageType-parameteren mangler når du pakker fra en dobbelt administrert og uadministrert mappe, er standardvalget å produsere én enkelt uadministrert .zip-fil.

Feilsøking

Hvis du bruker Visual Studio til å redigere ressursfiler som opprettes av løsningspakkeprogrammet, kan det hende du får en melding når du pakker på nytt, som ligner på dette: “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.” Dette skjer fordi Visual Studio erstatter ressursfilens metadata-merker med dataetiketter.

Løsning

  1. Åpne ressursfilen i redigeringsprogrammet du foretrekker, og finn og oppdater følgende merker:

    <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. Endre navnet på noden fra <data> til <metadata>.

    For eksempel denne strengen:

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

    Endringer i:

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

    Dette gjør at løsningspakkeprogrammet kan lese og importere ressursfilen. Dette problemet er bare observert ved bruk av redigeringsprogrammet for Visual Studio-ressurs.

Se også

Bruke kildekontroll med løsningsfiler

Løsningskonsepter