Rīks Risinājumu pakotājs

SolutionPackager ir rīks, kas var atgriezeniski sadalīt saspiestu Microsoft Dataverse risinājuma failu vairākos XML failos un citos failos. Pēc tam šos failus var viegli pārvaldīt, izmantojot avota vadības sistēmu. Nākamajās sadaļās ir parādīts, kā palaist rīku un kā izmantot rīku ar pārvaldītiem un nepārvaldītiem risinājumiem.

Kur atrast Risinājumu pakotāja rīku?

Risinājumu pakotāja rīks tiek izplatīts kā daļa no Microsoft.CrmSdk.CoreTools NuGet pakotnes. Lai instalētu programmu, rīkojieties šādi.

  1. NuGet Lejupielādējiet pakotni.
  2. Pārdēvējiet pakotnes faila nosaukuma paplašinājumu no .nupkg uz .zip.
  3. Izvilkt saspiestā (zip) faila saturu.

Jūs atradīsit SolutionPackager.exe izpildāms mapē izvilktais <mapes nosaukums>/saturs/bin/coretools. Palaidiet programmu no mapes coretools vai pievienojiet šo mapi savam PATH.

Risinājumu pakotāja komandrindas argumenti

Risinājumu pakotājs ir komandrindas rīks, ko var izsaukt ar šajā tabulā norādītajiem parametriem.

Arguments Apraksts
/action: {Extract|Pakotne} Obligāti jānorāda. Veicamā darbība. Šī darbība var būt risinājuma .zip faila izgūšana mapē vai mapes saspiešana .zip failā.
/zipile: <faila ceļš> Obligāti jānorāda. Risinājuma .zip faila ceļš un nosaukums. Izvilkšanas laikā failam jābūt un jābūt lasāmam. Pakošanas laikā fails tiek aizstāts.
/mape: <maoes ceļš> Obligāti jānorāda. Ceļš uz mapi. Izgūstot tiek izveidota šī mape, un tā tiek aizpildīta ar komponentu failiem. Iepakojot šai mapei jau ir jābūt un tajā jābūt iepriekš izvilktiem komponentu failiem.
/packagetype: {Unmanaged|Managed|Abi} Neobligāts. Apstrādājamās pakotnes tips. Noklusējuma vērtība ir Nepārvaldīts. Šis arguments vairumā gadījumu var tikt izlaists, jo pakotnes tipu var nolasīt no .zip faila vai komponenta faila iekšpuses. Ja izgūšanas laikā ir norādīta vērtība Abi, ir jābūt gan pārvaldītiem, gan nepārvaldītiem risinājuma .zip failiem, un tie tiek apstrādāti vienā mapē. Kad iepakojums un Abi ir norādīti, pārvaldīts un nepārvaldīts risinājums .zip faili tiek veidoti no vienas mapes. Papildinformāciju skatiet šīs tēmas sadaļā par darbu ar pārvaldītiem un nepārvaldītiem risinājumiem.
/allowWrite:{Yes|Nē} Neobligāts. Noklusējuma vērtība ir Jā. Šis arguments tiek izmantots tikai izvilkšanas laikā. Ja ir norādīts /allowWrite:No, rīks veic visas darbības, bet nevar rakstīt vai dzēst failus. Izvilkšanas darbību var droši novērtēt, nepārrakstot vai nedzēšot esošos failus.
/allowDelete:{Yes|No|Uzvedne} Neobligāts. Noklusējuma vērtība ir Uzvedne. Šis arguments tiek izmantots tikai izvilkšanas laikā. Ja ir norādīts /allowDelete:Yes, visi faili kas nav sagaidāmi un kas atrodas mapē, kuru norādījis /mape parametrs, tiek automātiski izdzēsti. Ja ir norādīts /allowDelete:No, dzēšana netiek veikta. Kad ir norādīts /allowDelete:Prompt, lietotājam, izmantojot konsoli, tiek piedāvāts atļaut vai liegt visas dzēšanas darbības. Ja ir norādīts /allowWrite:No, dzēšana netiek veikta pat tad, ja ir norādīts arī /allowDelete:Yes.
/clobber Neobligāts. Šis arguments tiek izmantots tikai izvilkšanas laikā. Ja ir norādīts /clobber, faili, kuriem ir tikai lasāma atribūtu kopa, tiek pārrakstīti vai dzēsti. Ja tas nav norādīts, faili, kuriem ir tikai lasāms atribūts, netiek pārrakstīti vai dzēsti.
/errorlevel: {Off|Error|Warning|Info|Izvērst} Neobligāts. Noklusējuma vērtība ir Informācija. Šis arguments norāda izvades informācijas reģistrēšanas līmeni.
/karte: <faila ceļš> Neobligāts. .xml faila ceļš un nosaukums, kurā ir failu kartēšanas direktīvas. Izmantojot tos izgūšanas laikā, faili parasti tiek nolasīti no mapes, kas norādīta ar parametru /mape, tiek nolasīti no alternatīvām atrašanās vietām, kā norādīts kartējuma failā. Pakotnes darbības laikā faili, kas atbilst direktīvām, netiek rakstīti.
/nologo Neobligāts. Apspiest reklāmkarogu izpildlaikā.
/žurnālfails: <faila ceļš> Neobligāts. Ceļš un nosaukums uz žurnāla failu. Ja fails jau pastāv, failam tiek pievienota jauna reģistrēšanas informācija.
@ <faila ceļš> Neobligāts. Faila ceļš un nosaukums, kas satur rīka komandrindas argumentus.
/sourceLoc: <virkne> Neobligāts. Šis arguments ģenerē veidnes resursu failu un ir derīgs tikai izvilkšanas laikā.

Iespējamās vērtības ir auto vai LCID/ISO kods valodai, kuru vēlaties eksportēt. Ja tiek izmantots šis arguments, virknes resursi no dotās lokalizācijas tiek izgūti kā neitrāls .resx fails. Ja auto vai tikai garā vai īsā veida slēdzis ir norādīts, tiek izmantots bāzes lokalizācija vai risinājums. Jūs varat izmantot komandas īso formu: /src.
/localize Neobligāts. Izvērsiet vai sapludiniet visus virkņu resursus .resx failos. Jūs varat izmantot komandas īso formu: /loc. Lokalizācijas opcija atbalsta .resx failu kopīgotos komponentus. Papildinformācija: Tīmekļa resursu RESX izmantošana

Izmantojiet komandas argumentu /map

Tālāk sniegtajā diskusijā ir sniegta detalizēta informācija par rīka Risinājuma pakotāja argumenta /map izmantošanu.

Automātiskās kompilācijas sistēmā iebūvētie faili, piemēram, .xap Silverlight faili un spraudņu montāžas, parasti netiek pārbaudīti avota vadīklā. Iespējams, ka tīmekļa resursi jau atrodas avota vadīklā vietās, kas nav tieši saderīgas ar SolutionPackager rīku. Iekļaujot /map parametru, Risinājumu pakotāja rīks var tikt novirzīts, lai lasītu un iepakotu šādus failus no alternatīvām vietām, nevis no Izvilkto failu mapes iekšpuses, kā tas parasti tiek darīts. Parametram /map ir jānorāda nosaukums un ceļš uz XML failu, kurā ir kartēšanas direktīvas. Šīs direktīvas uzdod SolutionPackager saskaņot failus pēc to nosaukuma un ceļa, kā arī norāda alternatīvo atrašanās vietu, lai atrastu atbilstošo failu. Šāda informācija vienādi attiecas uz visām direktīvām.

  • Var uzskaitīt vairākas direktīvas, tostarp tās direktīvas, kas atbilst identiskiem dokumentiem. Direktīvas, kas uzskaitītas lietas sākumā, ir prioritāras attiecībā pret vēlāk uzskaitītajām direktīvām.

  • Ja fails atbilst jebkurai direktīvai, tas ir atrodams vismaz vienā alternatīvā atrašanās vietā. Ja nav atrastas atbilstošas alternatīvas, SolutionPackager izdod kļūdu.

  • Mapju un failu ceļi var būt absolūti vai relatīvi. Relatīvie ceļi vienmēr tiek novērtēti no mapes, kas norādīta ar parametru /folder.

  • Vides mainīgos var norādīt, izmantojot %variable% sintaksi.

  • Mapes aizstājējzīmi "" var izmantot, lai apzīmētu "jebkurā apakšmapē"**. To var izmantot tikai kā ceļa pēdējo daļu, piemēram: "c:\folderA\**".

  • Faila nosaukuma aizstājējzīmes var izmantot tikai “*.ext” vai “*.*” veidlapās. Neviens cits modelis netiek atbalstīts.

    Šeit ir aprakstīti trīs veidu direktīvu kartējumi, kā arī piemērs, kas parāda, kā tos izmantot.

Mapes kartēšana

Tālāk sniegtā informācija sniedz detalizētu informāciju par mapju kartēšanu.

Xml formāts

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

Apraksts

Failu ceļi, kas atbilst "mapei A", tiek pārslēgti uz "folderB".

  • Zem katras apakšmapes hierarhijai precīzi jāsakrīt.

  • Mapju aizstājējzīmes netiek atbalstītas.

  • Nevar norādīt failu nosaukumus.

    Piemēri

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

Faila uz failu kartēšana

Tālāk sniegtā informācija sniedz papildinformāciju par kartēšanu starp failiem.

Xml formāts

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

Apraksts

Jebkurš parametram map atbilstošs fails tiks nolasīts no to parametrā norādītā nosaukuma un ceļa.

map parametram:

  • Ir jānorāda faila nosaukums. Ceļš nav obligāts. Ja ceļš nav norādīts, var tikt saskaņoti faili no jebkuras mapes.

  • Faila nosaukuma aizstājējzīmes netiek atbalstītas.

  • Mapes aizstājējzīme tiek atbalstīta.

    to parametram:

  • Ir jānorāda faila nosaukums un ceļš.

  • Faila nosaukums var atšķirties no map parametra nosaukuma.

  • Faila nosaukuma aizstājējzīmes netiek atbalstītas.

  • Mapes aizstājējzīme tiek atbalstīta.

Piemēri

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

Ņemiet vērā, ka iepriekš minētajā NuGet pakotnes piemērā cr886_PluginPackageTest.nupkg netiek pārrakstīts, ja fails jau atrodas norādītajā vietā.

Fails uz ceļu kartēšana

Tālāk sniegta detalizēta informācija par fails uz ceļu kartēšanu.

Xml formāts

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

Apraksts

Jebkurš parametram map atbilstošs fails tiek nolasīts no to parametrā norādītā ceļa.

map parametram:

  • Ir jānorāda faila nosaukums. Ceļš nav obligāts. Ja ceļš nav norādīts, var tikt saskaņoti faili no jebkuras mapes.

  • Faila nosaukuma aizstājējzīmes tiek atbalstītas.

  • Mapes aizstājējzīme tiek atbalstīta.

to parametram:

  • Ir jānorāda ceļš.

  • Mapes aizstājējzīme tiek atbalstīta.

  • Nav jānorāda faila nosaukums.

    Piemēri

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

Kartēšanas piemērs

Šajā XML koda paraugā ir parādīts pilnīgs kartēšanas fails, kas ļauj Risinājumu pakotāja rīkam lasīt jebkuru tīmekļa resursu un divas noklusējuma ģenerētās montāžas no izstrādātāju rīkkopas projekta 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>  

Pārvaldītie un nepārvaldītie risinājumi

Dataverse saspiestā risinājuma (.zip) failu var eksportēt vienā no diviem tipiem, kā parādīts šeit.

Pārvaldīts risinājums
Pabeigts risinājums, kas ir gatavs importēšanai organizācijā. Pēc importēšanas komponentus nevar pievienot vai noņemt, lai gan tie pēc izvēles var atļaut papildu pielāgošanu. Tas ir ieteicams, ja risinājuma izstrāde ir pabeigta.

Nepārvaldīts risinājums
Atvērts risinājums bez ierobežojumiem attiecībā uz to, ko var pievienot, noņemt vai modificēt. Tas ir ieteicams risinājuma izstrādes laikā.

Saspiestā risinājuma faila formāts būs atšķirīgs atkarībā no tā tipa - pārvaldīta vai nepārvaldīta. Risinājumu pakotājs var apstrādāt jebkura tipa saspiestu risinājumu failus. Tomēr rīks nevar pārvērst vienu tipu uz citu. Vienīgais veids, kā risinājuma failus pārvērst par citu tipu, piemēram, no nepārvaldīta uz pārvaldīta, ir importēt nepārvaldīto risinājumu .zip failu Dataverse serverī, un pēc tam šis risinājums ir jāeksportē kā pārvaldīts risinājums.

Risinājumu pakotājs var apstrādāt nepārvaldīta un pārvaldīta risinājuma .zip formāta failus kā apvienotu kopu, izmantojot /PackageType:Both parametru. Lai veiktu šo darbību, risinājums ir jāeksportē divreiz pēc katra veida, nosaucot .zip failus šādi.

Nepārvaldīts .zip fails: AnyName.zip Pārvaldīts .zip fails: AnyName_managed.zip

Rīks pieņems, ka pārvaldītais zip fails atrodas tajā pašā mapē, kur nepārvaldītais fails, un izvilks abus failus vienā mapē, saglabājot atšķirības, kur pastāv pārvaldītie un nepārvaldītie komponenti.

Pēc tam, kad risinājums ir izvilkts gan kā nepārvaldīts, gan pārvaldīts fails, ir iespējams no vienas mapes sapakot abus vai katru tipu atsevišķi, izmantojot parametru /PackageType, lai norādītu, kuru tipu izveidot. Norādot abus failus, tiks izveidoti divi .zip faili, izmantojot iepriekš minēto nosaukumdošanas metodi. Ja /PackageType parametrs nav iekļauts divu pārvaldītu un nepārvaldītu mapju pakotnē, noklusējuma iestatījums ir izveidot vienu nepārvaldītu .zip failu.

Problēmu novēršana

Ja izmantojat Visual Studio, lai rediģētu risinājumu pakotāja izveidotos resursu failus, iespējams, saņemsit ziņojumu, kad būsit to iepakojis līdzīgi kā: “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.” Tas notiek tāpēc, ka Visual Studio aizstāj resursu faila metadatu tagi ar datu tagiem.

Risinājums

  1. Atveriet resursu failu savā iecienītākajā teksta redaktorā un atrodiet un atjauniniet tālāk norādītos tagus:

    <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. Mainiet mezgla nosaukumu no <data> uz <metadata>.

    Piemēram, šī virkne:

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

    Mainās uz:

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

    Tas ļauj risinājuma pakotājiem lasīt un importēt resursu failu. Šī problēma ir novērota tikai, izmantojot Visual Studio resursu redaktoru.

Skatiet arī

Izmantot avota vadīklu ar Risinājuma failiem

Risinājumu koncepcijas