Бөлісу құралы:


Шешім бумаларын ораушы құралы

SolutionPackager — Microsoft Dataverse қысылған шешім файлын бірнеше XML файлдарына және басқа файлдарға қайтымды түрде ыдырай алатын құрал. Содан кейін бастапқы басқару жүйесін пайдалану арқылы бұл файлдарды оңай басқаруға болады. Келесі бөлімдерде құралды іске қосу және құралды басқарылатын және басқарылмайтын шешімдер арқылы пайдалану жолы көрсетіледі.

Маңызды

SolutionPackager құралы енді шешімдерді орау және буып-түюдің ұсынылатын жолы емес. SolutionPackager құралының мүмкіндіктері Power Platform CLI-ге енгізілген. pac solution пәрменінде unpack, pack, clone және sync олардың ішінде бірнеше етістіктер бар. SolutionPackager құралының бірдей негізгі мүмкіндіктері.

SolutionPackager құралын табу жолы

The SolutionPackager құралы Microsoft.CrmSdk.CoreTools NuGet бумасының бөлігі ретінде таратылады. Бағдарламаны орнату үшін мына қадамдарды орындаңыз.

  1. NuGet бумасын жүктеп алыңыз.
  2. Пакет файл атауы кеңейтімінің атын .nupkg-ден .zip-ге өзгертіңіз.
  3. Қысылған (zip) файлдың мазмұнын шығарыңыз.

SolutionPackager.exe орындалатын файлын <extracted-folder-name>/contents/bin/coretools қалтасынан табыңыз. Бағдарламаны coretools қалтасынан іске қосыңыз немесе сол қалтаны PATH ішіне қосыңыз.

SolutionPackager пәрмен жолының аргументтері

SolutionPackager – бұл келесі кестеде көрсетілген параметрлермен шақыруға болатын пәрмен жолының құралы.

Аргумент Сипаттама
/action: {Extract|Pack} Талап етіледі. Орындалатын әрекет. Әрекет шешім .zip файлын қалтаға шығарады немесе қалтаны .zip файлына жинақтайды.
/zipfile: <file path> Талап етіледі. Шешім .zip файлының жолы мен атауы. Шығару кезінде файл бар және оқылатын болуы керек. Жинақтау кезінде, файл ауыстырылады.
/folder: <folder path> Талап етіледі. Қалтаның жолы. Шығару кезінде, осы қалта жасалып, құрамдас файлдарымен толтырылады. Жинақтау кезінде, осы қалта болуы және бұрын шығарылған құрамдас файлдарын қамтуы тиіс.
/packagetype: {Unmanaged|Managed|Both} Қосымша. Өңделетін буманың түрі. Әдепкі мән – Басқарылмайтын. Бұл аргумент көптеген жағдайларда өткізіп жіберілуі мүмкін, себебі бума түрін .zip файлының немесе құрамдас файлдарының ішінен оқуға болады. Шығару кезінде және екеуі де көрсетілген кезде, басқарылатын және басқарылмайтын шешімнің .zip файлдары болуы және жеке қалтада өңделуі тиіс. Буып-түю және Екеуі де көрсетілгенде, басқарылатын және басқарылмайтын шешім .zip файлдары бір қалтадан жасалады. Қосымша ақпарат алу үшін осы мақаланың соңынан басқарылатын және басқарылмайтын шешімдермен жұмыс істеу бөлімін қараңыз.
/allowWrite:{Yes|No} Қосымша. Әдепкі мәні: Иә. Бұл аргумент тек шығару кезінде пайдаланылады. /allowWrite:No аргументі көрсетілген кезде, құрал барлық әрекеттерді орындайды, бірақ кез келген файлдарды жазуға немесе өшіруге жол бермейді. Шығару әрекетін кез келген бұрыннан бар файлдарды қайта жазусыз немесе жоюсыз қауіпсіз түрде бағалауға болмайды.
/allowDelete:{Yes|No|Prompt} Қосымша. Әдепкі мән – Сұрау. Бұл аргумент тек шығару кезінде пайдаланылады. /allowDelete:Yes көрсетілгенде, /folder параметрі арқылы көрсетілген қалтадағы күтпеген кез келген файлдар автоматты түрде жойылады. /allowDelete:No көрсетілгенде, жоюлар болмайды. /allowDelete:Prompt аргументі көрсетілген кезде, пайдаланушыдан консоль арқылы барлық жою әрекеттеріне рұқсат ету немесе тыйым салу сұралады. Егер /allowWrite:No көрсетілсе, /allowDelete:Yes көрсетілсе де, жоюлар болмайды.
/clobber Қосымша. Бұл аргумент тек шығару кезінде пайдаланылады. /clobber аргументі көрсетілген кезде, орнатылған тек оқу үшін төлсипаты бар файлдар қайта жазылады немесе жойылады. Аргумент көрсетілмеген кезде, орнатылған тек оқу үшін төлсипаты бар файлдар қайта жазылмайды немесе жойылмайды.
/errorlevel: {Off|Error|Warning|Info|Verbose} Қосымша. Әдепкі мән – Ақпарат. Бұл аргумент шығаратын жүйеге кіру ақпаратының деңгейін көрсетеді.
/map: <file path> Қосымша. Файлды салыстыру директиваларын қамтитын .xml файлдарының жолы мен атауы. Шығару барысында пайдаланылған кезде, /folder параметрін арқылы көрсетілген қалта ішінен оқылған файлдар әдетте балама орындардан салыстыру файлында көрсетілгендей оқылады. Жинақтау әрекеті кезінде, директиваларға сәйкес келетін файлдар жазылмайды.
/nologo Қосымша. Баннерді орындалу уақытында жасырады.
/log: <file path> Қосымша. Журнал файлының жолы мен атауы. Егер файл бұрыннан бар болса, жаңа жүйеге кіру ақпараты файлға қосылады.
@ <file path> Қосымша. Құрал үшін пәрмен жолының аргументтерін қамтитын файлдың жолы мен атауы.
/sourceLoc: <string> Қосымша. Бұл аргумент үлгінің ресурс файлын жасайды және тек шығару кезінде жарамды болады.

Ықтимал мәндер – auto немесе экспорттауға қажетті тілге арналған LCID/ISO коды. Бұл аргумент пайдаланылған кезде, берілген тілден алынған жол ресурстары бейтарап .resx файлы сияқты шығарылады. Егер auto немесе қосқыштың ұзын немесе қысқа пішіні көрсетілсе, негізгі тіл немесе шешім пайдаланылады. Пәрменнің қысқа формасын пайдалануға болады: /src.
/localize Қосымша. Барлық жол ресурстарын .resx файлдарына шығарады немесе біріктіреді. Пәрменнің қысқа формасын пайдалануға болады: /loc. Локализациялау опциясы .resx файлдары үшін ортақ құрамдастарға қолдау көрсетеді. Қосымша ақпарат: RESX веб-ресурстарын пайдалану

/map пәрмені аргументін пайдалану

Төмендегі талқылауда SolutionPackager құралына /map аргументін пайдалану туралы мәліметтер сипатталады.

Автоматтандырылған құрастыру жүйесінде жасалған файлдар (мысалы .xap Silverlight файлдары және қосылатын модуль жиындары) әдетте бастапқы басқаруға тексерілмейді. Веб-ресурстар SolutionPackager құралымен тікелей сыйыспайтын орындардағы бастапқы бақылауда бұрыннан бар болуы мүмкін. /map параметрін қосу арқылы, SolutionPackager құралын әдетте орындалатын Шығару қалтасынан емес балама орындардан алынатын файлдарды оқуға немесе жинақтауға бағыттауға болады. /map параметрі салыстыру директивалары бар XML файлының атауы мен жолын көрсетуі керек. Бұл директивалар SolutionPackager бағдарламасына файлдарды аты мен жолы бойынша сәйкестендіруге нұсқау береді және сәйкес файлды табу үшін балама орынды көрсетеді. Келесі ақпарат барлық директиваларға бірдей қолданылады.

  • Бірдей файлдарға сәйкес келетін директиваларды қоса алғанда, бірнеше директивалар тізімделуі мүмкін. Файлдың басында тізімделген директивалар кейінірек тізімделген директивалар алдында басымдылыққа ие болады.

  • Егер файл кез келген директивамен сәйкестендірілсе, ол кемінде бір балама орыннан табылуы қажет. Сәйкес баламалар табылмаса, SolutionPackager қате шығарады.

  • Қалта мен файл жолдары абсолюттік немесе салыстырмалы болуы мүмкін. Салыстырмалы жолдар әрқашан /folder параметрі арқылы көрсетілген қалтадан бағаланады.

  • Орта айнымалылары %variable% синтаксисінің көмегімен көрсетілуі мүмкін.

  • «**» қалтаның қойылмалы таңбасы «кез келген ішкі қалтада» дегенді білдіреді. Оны тек жолдың соңғы бөлігі ретінде пайдалануға болады, мысалы: "c:\folderA\**".

  • Файл атауының қойылмалы таңбалары тек “*.ext” немесе “*.*” пішіндерінде пайдаланылуы мүмкін. Басқа үлгіге қолдау көрсетілмейді.

    Директиваларды салыстырудың үш түрі және оларды пайдалану жолын көрсететін мысал осы жерде сипатталады.

Қалтаны салыстыруы

Келесі ақпарат қалтаны салыстыру туралы толық ақпаратты береді.

Xml пішімі

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

Сипаттама

«А қалтасына» сәйкес келетін файл жолдары «Б қалтасына» ауыстырылады.

  • Әрбір ішкі қалтаның иерархиясы дәл сәйкес келуі тиіс.

  • Қалтаның қойылмалы таңбаларына қолдау көрсетілмейді.

  • Файл атаулары көрсетілмеуі мүмкін.

    Мысалдар

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

Файлды файлмен салыстыру

Келесі ақпарат файлдан файлға салыстыру туралы қосымша мәліметтерді береді.

Xml пішімі

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

Сипаттама

map параметріне сәйкес келетін кез келген файл to параметрде көрсетілген атау мен жолдан оқылады.

mapпараметрі үшін:

  • Файл атауы көрсетілуі тиіс. Жол міндеті емес. Егер жол көрсетілмесе, файлдар кез келген қалтадан сәйкестендірілуі мүмкін.

  • Файл атауының қойылмалы таңбаларына қолдау көрсетілмейді.

  • Қалтаның қойылмалы таңбасына қолдау көрсетіледі.

    toпараметрі үшін:

  • Файл атауы мен жолы көрсетілуі тиіс.

  • Файл атауы map параметріндегі атаудан өзгеше болуы мүмкін.

  • Файл атауының қойылмалы таңбаларына қолдау көрсетілмейді.

  • Қалтаның қойылмалы таңбасына қолдау көрсетіледі.

Мысалдар

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

Жоғарыдағы NuGet бума мысалында, файл көрсетілген жерде бұрыннан бар болса, cr886_PluginPackageTest.nupkg қайта жазылмайды.

Файлды жолмен салыстыру

Төменде файлды жолмен салыстыру туралы толық ақпарат беріледі.

Xml пішімі

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

Сипаттамасы

map параметріне сәйкес келетін кез келген файл to параметрінде көрсетілген жолдан оқылады.

mapпараметрі үшін:

  • Файл атауы көрсетілуі тиіс. Жол міндеті емес. Егер жол көрсетілмесе, файлдар кез келген қалтадан сәйкестендірілуі мүмкін.

  • Файл атауының қойылмалы таңбаларына қолдау көрсетіледі.

  • Қалтаның қойылмалы таңбасына қолдау көрсетіледі.

toпараметрі үшін:

  • Жол көрсетілуі тиіс.

  • Қалтаның қойылмалы таңбасына қолдау көрсетіледі.

  • Файл атауы көрсетілмеуі тиіс.

    Мысалдар

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

Салыстыру мысалы

Төмендегі XML код үлгісінде SolutionPackager құралын кез келген веб-ресурсты және 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 subfolders -->  
       <FileToPath map="WebResources\*.*" to="..\..\CrmPackage\WebResources\**" />  
       <FileToPath map="WebResources\**\*.*" to="..\..\CrmPackage\WebResources\**" />  
</Mapping>  

Басқарылатын және басқарылмайтын шешімдер

Dataverse қысылған шешімі (.zip) файлын осы жерде көрсетілгендей екі түрдің біріне экспорттауға болады.

Басқарылатын шешім
Толық шешім ұйымға импорттауға дайын. Импортталғаннан кейін, құрамдастарды қосу немесе жою мүмкін емес, дегенмен олар келесі реттеу әрекетіне мүмкіндік беруі мүмкін. Бұл шешімді әзірлеу аяқталған кезде ұсынылады.

Басқарылмайтын шешім
Қосуға, жоюға немесе өзгертуге болатын шектеулері жоқ ашық шешім. Бұл шешімді әзірлеу кезінде ұсынылады.

Қысылған шешімнің пішімі оның түріне (басқарылатын немесе байқарылмайтын) байланысты әртүрлі болады. SolutionPackager құралы кез келген түрдің қысылған файлдарын өңдей алады. Алайда, құрал бір түрді басқа түрге түрлендіре алмайды. Шешім файлдарын әртүрлі түрге (мысалы, басқарылмайтыннан басқарылатынға) түрлендірудің жалғыз жолы – басқарылмайтын шешімнің .zip файлын Dataverse серверіне импорттап, шешімді басқарылатын шешім ретінде экспорттау.

SolutionPackager құралы басқарылмайтын және басқарылатын шешімнің .zip файлдарын /PackageType:Both параметрі арқылы біріктірілген жиын ретінде өңдей алады. Бұл әрекетті орындау үшін, шешімді .zip файлдарын келесідей атай отырып, әр түр ретінде екі рет экспорттау қажет.

Басқарылмайтын .zip файлы: AnyName.zip Басқарылатын .zip файлы: AnyName_managed.zip

Құрал басқарылатын zip файлының бірдей қалтада басқарылмайтын файл ретінде болуын болжап, екі файлды басқарылатын және басқарылмайтын құрамдастар бар айырмашылықтарын сақтай отырып, бір қалтаға шығарады.

Шешім басқарылмайтын және басқарылатын ретінде шығарылғаннан кейін, жасауға арналған түрді көрсету үшін /PackageType параметрінің көмегімен сол бір қалтадан екі түрді немесе әр түрді жеке жинақтауға болады. Екі файлды да көрсеткен кезде жоғарыдағыдай атау конвенциясын пайдаланып екі .zip файлы жасалады. Егер /PackageType параметрі қос басқарылатын және басқарылмайтын қалтадан жинақтау кезінде жоқ болса, әдепкі бір басқарылмайтын .zip файлы жасалады.

Ақауларды жою

Шешім бумаларын ораушы арқылы жасалған ресурс файлдарын өңдеу үшін Visual Studio бағдарламасын пайдалансаңыз, қайта жинақтау кезінде мынаған ұқсас хабар аласыз: “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.” Бұл Visual Studio бағдарламасы ресурс файлының метадеректер тегтерін деректер тегтерімен ауыстырғандықтан пайда болады.

Жұмыс шешімі

  1. Таңдаулы мәтін өңдегішінен ресурс файлын ашыңыз және келесі тегтерді тауып, жаңартыңыз.

    <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. Түйін атауын <data> параметрінен <metadata> параметріне өзгертіңіз.

    Мысалы, мына жол:

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

    Мынаған өзгереді:

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

    Бұл шешім бумаларын ораушыға ресурс файлдарын оқуға және импорттауға мүмкіндік береді. Бұл ақаулық тек Visual Studio ресурс өңдегішін пайдалану кезінде байқалды.

Сондай-ақ, келесіні қараңыз

Шешім файлдары бар бастапқы басқару элементін пайдалану
Шешім туралы түсініктер