Vytvoření balíčků pro nástroj Package Deployer
Package Deployer umožňuje správcům nasadit balíčky na instance Microsoft Dataverse. Balíček Package Deployer může být tvořen jakoukoli nebo všemi následujícími položkami:
- Jeden nebo více souborů řešení aplikace Dataverse.
- Ploché soubory nebo soubory konfiguračních dat z nástroje pro migraci konfigurace. Další informace o tomto nástroji viz Přesunutí dat konfigurace mezi instancemi a organizacemi pomocí nástroje Configuration Migration tool.
- Vlastní kód, který lze spustit před, během nebo po nasazení balíčku do instance Dataverse.
- HTML obsah specifický pro balíček, který se může zobrazit na začátku nebo konci procesu nasazení. Tento obsah může být užitečný pro poskytnutí popisu řešení a souborů, které jsou nasazeny v balíčku.
Poznámka:
Existuje další typ balíčku nazývaný balíček modulu plug-in. Tento druh balíčku je určen pro sestavení závislá na modulech plug-in a nemá žádný vztah s balíčky Package Deployer.
Předpoklady
- Ujistěte se, že máte připravena všechna řešení a další soubory, které chcete zahrnout do balíčku.
- Visual Studio 2019 nebo pozdější nebo Visual Studio Code.
Přehled procesu
Chcete-li vytvořit balíček Package Deployer, proveďte následující kroky.
- Vytvořte projekt Visual Studio nebo MSBuild
- Přidejte řešení a další soubory do projektu
- Aktualizujte poskytnuté soubory HTML (volitelné)
- Zadejte hodnoty konfigurace balíčku
- Definujte vlastní kód pro balíček
- Sestavte a nasaďte balíček
Tyto kroky jsou podrobně popsány v tomto článku.
Vytvoření projektu balíčku
Prvním krokem je vytvoření projektu Visual Studio nebo MSBuild pro balíček. Chcete-li to provést, musíte mít na vývojovém počítači nainstalované jedno ze dvou dostupných rozšíření nástrojů. Pokud používáte Visual Studio Code, nainstalujte Microsoft Power Platform CLI. Pokud používáte Visual Studio 2019, nainstalujte Power Platform Tools pro Visual Studio. Rozšíření Power Platform tools je aktuálně dostupné pouze pro Visual Studio 2019. Vytvořený projekt však lze sestavit pomocí aplikace Visual Studio 2019 nebo novější.
Vyberte příslušnou kartu níže a zjistěte, jak vytvořit projekt pomocí požadovaného rozšíření nástroje. Výstup obou nástrojů je projekt v podobném formátu.
Spusťte příkaz pac package init k vytvoření počátečního balíčku. Další informace: pac package
pac package init help
pac package init --outputDirectory DeploymentPackage
Výsledný výstup rozhraní příkazového řádku obsahuje složky a soubory zobrazené níže. Jako příklad zde byl použit název složky „DeploymentPackage“.
C:.
└───DeploymentPackage
│ DeploymentPackage.csproj
│ PackageImportExtension.cs
│
└───PkgAssets
ImportConfig.xml
manifest.ppkg.json
Ve vytvořeném projektu najděte konfigurační soubor ImportConfig.xml ve složce PkgAssets a soubor PackageImportExtension.cs. Tyto soubory upravíte, jak je popsáno dále v tomto článku.
Přidání souborů balíčku
Po vytvoření projektu balíčku můžete začít přidávat řešení a další soubory do tohoto projektu.
Při použití rozhraní příkazového řádku můžete do projektu balíčku přidat externí balíčky, řešení a odkazy pomocí jednoho z dílčích příkazů pro přidání. Příkazem pac package help
zobrazíte seznam dílčích příkazů. Nyní přidejme řešení do našeho balíčku.
> pac package add-solution help
Commands:
Usage: pac package add-solution --path [--import-order] [--skip-validation] [--publish-workflows-activate-plugins] [--overwrite-unmanaged-customizations] [--import-mode] [--missing-dependency-behavior] [--dependency-overrides]
> cd .\DeploymentPackage\
> pac package add-solution --path ..\TestSolution_1_0_0_1_managed.zip
The item was added successfully.
Konfigurace balíčku
Definujte konfiguraci balíčku přidáním informací o vašem balíčku do souboru ImportConfig.xml v projektu. Otevřete soubor pro úpravy. Následující seznam obsahuje informace o každém parametru a uzlu v konfiguračním souboru.
installsampledata
True
nebofalse
. Je-litrue
, nainstaluje ukázková data do instance Dataverse. Tato data jsou stejná vzorová data, která můžete nainstalovat v Nastavení> oblast Správa dat v Dataverse.waitforsampledatatoinstall
Pravda nebo nepravda. Je-li true, a pokud instalampledata je také true, před nasazením balíčku čeká na instalaci ukázkových dat.Poznámka:
Ujistěte se, že jste nastavili instalampledata na true, pokud jste nastavili
waitforsampledatatoinstall
na true.agentdesktopzipfile
Název souboru .zip, který chcete rozbalit. Pokud zde zadáte název souboru .zip, přidá se během procesu nasazení balíčku obrazovka, která vás vyzve k výběru umístění, kam chcete rozbalit obsah souboru.Tento atribut se běžně používá při vytváření balíčků pro Unified Service Desk pro Dynamics 365. Více informací o Unified Service Desk naleznete v Příručce pro správce Unified Service Desk pro Dynamics 3.0.
agentdesktopexename
Název souboru .exe nebo .msi v souboru .zip nebo adresa URL, která má být vyvolána na konci procesu nasazení.Tento atribut se běžně používá při vytváření balíčků pro Unified Service Desk.
crmmigdataimportfile
Název souboru výchozího konfiguračního datového souboru (.zip) exportovaného pomocí nástroje pro migraci konfigurace.Můžete také importovat lokalizovanou verzi souboru s konfiguračními údaji na základě ID národního prostředí (LCID) zadaného pomocí nového nastavení modulu runtime při spuštění nástroje Package Deployer. Použijte uzel
<cmtdatafile>
(vysvětleno později) k určení lokalizovaných verzí souboru konfiguračních dat v balíčku a poté použijte metoduOverrideConfigurationDataFileLanguage
(vysvětleno později) k určení logiky pro import konfiguračního datového souboru na základě ID národního prostředí zadaného pomocí nastavení modulu runtime. Importovat lze vždy jen jeden konfigurační datový soubor pomocí balíčku.V případě Dataverse (místní): pokud váš konfigurační datový soubor obsahuje informace o uživateli a zdrojová i cílová instance Dataverse jsou ve stejné doméně služby Active Directory, informace o uživateli jsou importovány do cílové instance Dataverse. Chcete-li importovat informace o uživateli do instance Dataverse (místní) v jiné doméně, musíte do projektu zahrnout soubor mapování uživatelů (.xml) vygenerovaný pomocí nástroje pro migraci konfigurace a zadat jej spolu s konfiguračním datovým souborem pomocí atributu
usermapfilename
v uzlu<cmtdatafile>
(vysvětleno později). Informace o uživateli nelze importovat do instancí Dataverse.
Uzel<solutions>
Obsahuje pole uzlů<configsolutionfile>
, které popisují importovaná řešení. Pořadí řešení v tomto uzlu označuje pořadí, ve kterém budou řešení importována do cílové instance Dataverse.Uzel
<configsolutionfile>
Použijte tento uzel pod uzlem<solutions>
pro určení jednotlivých řešení a následujících informací pro každé importované řešení:solutionpackagefilename
: Zadejte název souboru .zip vašeho řešení. Povinné:overwriteunmanagedcustomizations
: Určete, zda se mají při importu řešení přepsat veškerá nespravovaná řešení, které již existují v cílové instanci Dynamics 365. Tento atribut je volitelný, a pokud tento atribut nezadáte, ve výchozím nastavení jsou nespravovaná vlastní nastavení v existujícím řešení zachována v cílové instanci Dynamics 365.publishworkflowsandactivateplugins
: Určete, zda se mají po importu řešení publikovat pracovní postupy a aktivovat moduly plugin v cílové instanci Dynamics 365. Tento atribut je volitelný, a pokud nezadáte tento atribut, ve výchozím nastavení jsou pracovní toky publikovány a moduly plugin jsou aktivovány po importu řešení do cílové instance Dynamics 365.Do balíčku můžete přidat více názvů souborů řešení přidáním libovolného množství uzlů
<configsolutionfile>
. Pokud například chcete importovat tři soubory řešení, přidejte je následujícím způsobem:
<solutions> <configsolutionfile solutionpackagefilename="SampleSolutionOne_1_0_managed.zip" overwriteunmanagedcustomizations="false" publishworkflowsandactivateplugins="true"/> <configsolutionfile solutionpackagefilename="SampleSolutionTwo_1_0_managed.zip" overwriteunmanagedcustomizations="false" publishworkflowsandactivateplugins="true"/> <configsolutionfile solutionpackagefilename="SampleSolutionThree_1_0_managed.zip" /> </solutions>
Uzel
<filestoimport>
Obsahuje pole uzlů<configimportfile>
a<zipimportdetails>
, které se používají k popisu jednotlivých souborů, resp. souborů .zip, které mají být importovány.Uzel
<configimportfile>
Použijte tento uzel pod uzlem<configimportfile>
pro popis souboru, který má být importován do Dataverse. Do balíčku můžete přidat soubory řešení přidáním libovolného množství uzlů<configimportfile>
.<filestoimport> <configimportfile filename="File.csv" filetype="CSV" associatedmap="FileMap" importtoentity="FileEntity" datadelimiter="" fielddelimiter="comma" enableduplicatedetection="true" isfirstrowheader="true" isrecordownerateam="false" owneruser="" waitforimporttocomplete="true" /> <configimportfile filename="File.zip" filetype="ZIP" associatedmap="FileMapName" importtoentity="FileEntity" datadelimiter="" fielddelimiter="comma" enableduplicatedetection="true" isfirstrowheader="true" isrecordownerateam="false" owneruser="" waitforimporttocomplete="true"/> </filestoimport>
Níže se nachází seznam podporovaných atributů:
Atribut Description filename
Název souboru obsahujícího data importu. Pokud je soubor typu .zip, uzel <zipimportdetails>
musí být přítomen s uzlem<zipimportdetail>
pro každý soubor v souboru .zip.filetype
Tato hodnota může být soubor csv, xml nebo zip. associatedmap
Název mapování dat importu Dataverse, který se použije pro tento soubor. Pokud je prázdný, pro tento soubor název mapy importovaných dat se použije název určený systémem. importtoentity
Může být název souboru exe v souboru .zip, adresa URL nebo soubor .msi pro poskytnutí odkazu pro vyvolání na konci procesu. datadelimiter
Název oddělovače dat použitý v souboru importu. Platné hodnoty jsou jednoduché nebo dvojité uvozovky. fielddelimiter
Název oddělovače polí použitý v souboru importu. Platné hodnoty jsou čárka nebo dvojtečka nebo jednoduchá uvozovka. enableduplicatedetection
Určuje, zda povolit pravidla vyhledávání duplicit během importu dat. Platné hodnoty jsou true nebo false. isfirstrowheader
Používá se k označení, že první řádek importovaného souboru obsahuje názvy polí. Platné hodnoty jsou true
nebofalse
.isrecordownerateam
Označuje, zda vlastník záznamu určeného k importu má být tým. Platné hodnoty jsou true
nebofalse
.owneruser
Označuje ID uživatele, který by měl tyto záznamy vlastnit. Výchozí hodnota je aktuálně přihlášený uživatel. waitforimporttocomplete
Je-li true
, systém před pokračováním čeká na dokončení importu. Je-lifalse
, úlohy jsou zařazeny do fronty a pokračuje se.Uzel
<zipimportdetails>
Tento uzel obsahuje pole uzlů<zipimportdetail>
, které popisují soubory obsažené v souboru zip, který se používá k importu do Dynamics 365.Uzel
<zipimportdetail>
Použijte tento uzel pod uzlem<zipimportdetails>
pro poskytnutí informací o jednotlivém souboru v souboru .zip, který je uveden v uzlu<configimportfile>
.<filestoimport> ... ... <zipimportdetails> <zipimportdetail filename="subfile1.csv" filetype="csv" importtoentity="account" /> <zipimportdetail filename="subfile2.csv" filetype="csv" importtoentity="contact" /> </zipimportdetails> </filestoimport>
Podporované atributy jsou uvedeny níže:
Atribut Description filename
Název souboru obsahujícího data importu. filetype
Tato hodnota může být soubor csv nebo xml. importtoentity
Může být název souboru exe v souboru .zip, adresa URL nebo soubor .msi pro poskytnutí odkazu pro vyvolání na konci procesu. Uzel
<filesmapstoimport>
Tento uzel obsahuje pole uzlů<configmapimportfile>
k importu. Pořadí souborů mapování v tomto uzlu označuje pořadí, v jakém jsou importovány. Informace o mapování dat viz Vytvoření mapování dat pro import.Uzel
<configimportmapfile>
Použijte tento uzel pod uzlem<filesmapstoimport>
pro poskytnutí informací o jednotlivém souboru mapování, který se má importovat do Dataverse.<filesmapstoimport> <configimportmapfile filename="FileMap.xml" /> </filesmapstoimport>
Uzel
<cmtdatafiles>
Tento uzel obsahuje pole uzlů<cmtdatafile>
, které obsahuje lokalizovanou verzi souboru konfiguračních dat, který má být importován.Uzel
<cmtdatafile>
Použijte tento uzel pod uzlem<cmtdatafiles>
pro určení lokalizovaných konfiguračních datových souborů spolu s ID národního prostředí (povinné) a souborem informací o uživateli (volitelné). Příklad:<cmtdatafiles> <cmtdatafile filename="data_1033.zip" lcid="1033" usermapfilename="UserMap.xml" /> <cmtdatafile filename="data_1041.zip" lcid="1041" usermapfilename="" /> </cmtdatafiles>
Svou vlastní logiku můžete definovat v metodě
OverrideConfigurationDataFileLanguage
(vysvětleno později) k importu lokalizovaného souboru konfiguračních dat namísto výchozího (specifikovaného v crmmigdataimportfile) na základě hodnoty ID národního prostředí (LCID) zadané pomocí nastavení modulu runtime (vysvětleno později).Vyberte Uložit vše.
Následující XML reprezentuje obsah ukázkového souboru
ImportConfig.xml
.<?xml version="1.0" encoding="utf-16"?> <configdatastorage xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="https://www.w3.org/2001/XMLSchema" installsampledata="true" waitforsampledatatoinstall="true" agentdesktopzipfile="" agentdesktopexename="" crmmigdataimportfile="data_1033.zip"> <solutions> <configsolutionfile solutionpackagefilename="SampleSolutionOne_1_0_managed.zip" overwriteunmanagedcustomizations="false" publishworkflowsandactivateplugins="true"/> <configsolutionfile solutionpackagefilename="SampleSolutionTwo_1_0_managed.zip" overwriteunmanagedcustomizations="false" publishworkflowsandactivateplugins="true"/> <configsolutionfile solutionpackagefilename="SampleSolutionThree_1_0_managed.zip" /> </solutions> <filestoimport> <configimportfile filename="SampleOption.csv" filetype="CSV" associatedmap="SampleOption" importtoentity="sample_option" datadelimiter="" fielddelimiter="comma" enableduplicatedetection="true" isfirstrowheader="true" isrecordownerateam="false" owneruser="" waitforimporttocomplete="false"/> <configimportfile filename="File.zip" filetype="ZIP" associatedmap="FileMapName" importtoentity="FileEntity" datadelimiter="" fielddelimiter="comma" enableduplicatedetection="true" isfirstrowheader="true" isrecordownerateam="false" owneruser="" waitforimporttocomplete="true"/> <zipimportdetails> <zipimportdetail filename="subfile1.csv" filetype="csv" importtoentity="account" /> <zipimportdetail filename="subfile2.csv" filetype="csv" importtoentity="contact" /> </zipimportdetails> </filestoimport> <filesmapstoimport> <configimportmapfile filename="SampleOption.xml" /> </filesmapstoimport> <cmtdatafiles> <cmtdatafile filename="data_1033.zip" lcid="1033" usermapfilename="UserMap.xml" /> <cmtdatafile filename="data_1041.zip" lcid="1041" usermapfilename="" /> </cmtdatafiles> </configdatastorage>
Přidání vlastního kódu
Můžete přidat vlastní kód, který se spustí před, během a po importu balíčku do prostředí. Postup je následující.
Upravte soubor PackageTemplate.cs (nebo PackageImportExtension.cs) v kořenové složce projektu.
V souboru C# můžete:
Zadat vlastní kód, který se má provést při inicializaci balíčku v definici metody přepsání
InitializeCustomExtension
.Tuto metodu lze použít k tomu, aby uživatelé mohli používat parametry modulu runtime při spuštění balíčku. Jako vývojář můžete do balíčku přidat podporu libovolného parametru modulu runtime pomocí vlastnosti RuntimeSettings, pokud máte kód pro zpracování na základě vstupu uživatele.
Následující ukázkový kód například povoluje volaný parametr modulu runtime
SkipChecks
pro balíček, který má dvě možné hodnoty: true nebo false. Ukázkový kód zkontroluje, zda uživatel během spuštění nástroje Package Deployer určil nějaké parametry modulu runtime (buď pomocí příkazového řádku nebo prostředí PowerShell), a poté informace příslušným způsobem zpracovává. Pokud uživatel při spuštění balíčku nezadá žádný parametr modulu runtime, hodnota vlastnosti RuntimeSettings bude null.public override void InitializeCustomExtension() { // Do nothing. // Validate the state of the runtime settings object. if (RuntimeSettings != null) { PackageLog.Log(string.Format("Runtime Settings populated. Count = {0}", RuntimeSettings.Count)); foreach (var setting in RuntimeSettings) { PackageLog.Log(string.Format("Key={0} | Value={1}", setting.Key, setting.Value.ToString())); } // Check to see if skip checks is present. if ( RuntimeSettings.ContainsKey("SkipChecks") ) { bool bSkipChecks = false; if (bool.TryParse((string)RuntimeSettings["SkipChecks"], out bSkipChecks)) OverrideDataImportSafetyChecks = bSkipChecks; } } else PackageLog.Log("Runtime Settings not populated"); }
Tento kód umožňuje správci používat příkazový řádek nebo rutinu Import-CrmPackage k zadání, zda přeskočit bezpečnostní kontroly při spuštění nástroje Package Deployer pro import balíčku. Další informace: Nasazení balíčků pomocí nástroje Package Deployer a prostředí Windows PowerShell
Zadat vlastní kód, který se má provést před importem řešení v definici metody přepsání
PreSolutionImport
pro určení, zda se mají zachovat nebo přepsat vlastní nastavení při aktualizaci zadaného řešení v cílové instanci Dataverse a zda se mají automaticky aktivovat moduly plugin a pracovní postupy.Použít definici metody přepsání
RunSolutionUpgradeMigrationStep
k provedení transformace nebo upgradu dat mezi dvěma verzemi řešení. Tato metoda se volá, pouze pokud se importované řešení již nachází v cílové instanci Dataverse.Tato funkce očekává následující parametry:
Parametr Popis solutionName
Název řešení oldVersion
Číslo verze starého řešení newVersion
Číslo verze nového řešení oldSolutionId
Identifikátor GUID starého řešení. newSolutionId
Identifikátor GUID nového řešení. Zadat vlastní kód, který se má provést před dokončením importu řešení v definici metody přepsání metody
BeforeImportStage
. Ukázková data a některé ploché soubory pro řešení uvedená v souboruImportConfig.xml
jsou importovány před dokončením importu řešení.Přepsat aktuálně vybraný jazyk pro import konfiguračních dat pomocí definice metody přepsání
OverrideConfigurationDataFileLanguage
. Pokud zadané ID národního prostředí (LCID) zadaného jazyka není nalezeno v seznamu dostupných jazyků v balíčku, bude importován výchozí datový soubor.Dostupné jazyky pro konfigurační data zadáte v uzlu
<cmtdatafiles>
v souboruImportConfig.xml
. Výchozí soubor pro import konfiguračních dat je uveden v atributucrmmigdataimportfile
v souboruImportConfig.xml
.Přeskakování kontrol dat (OverrideDataImportSafetyChecks = true) zde může být efektivní, pokud jste si jisti, že cílová instance Dataverse neobsahuje žádná data.
Zadat vlastní kód, který se má provést po dokončení importu v definici metody přepsání metody
AfterPrimaryImport
>. Zbývající ploché soubory, které nebyly importovány dříve, než byl zahájen import řešení, se nyní importují.Změňte výchozí název složky balíčku na požadovaný název balíčku. Chcete-li tak učinit, přejmenujte složku
PkgFolder
(nebo PkgAssets) v podokně Průzkumník řešení a poté upravte vrácenou hodnotu pod vlastnostíGetImportPackageDataFolderName
.public override string GetImportPackageDataFolderName { get { // WARNING this value directly correlates to the folder name in the Solution Explorer where the ImportConfig.xml and sub content is located. // Changing this name requires that you also change the correlating name in the Solution Explorer return "PkgFolder"; } }
Změnit název balíčku úpravou návratové hodnoty pod vlastností
GetNameOfImport
.public override string GetNameOfImport(bool plural) { return "Package Short Name"; }
Tato vrácená hodnota je název vašeho balíčku, který se objevuje na stránce pro výběr balíčku v průvodci nástrojem Dynamics 365 Package Deployer.
Změnit popis balíčku úpravou návratové hodnoty pod vlastností
GetImportPackageDescriptionText
.public override string GetImportPackageDescriptionText { get { return "Package Description"; } }
Tato vrácená hodnota je popis vašeho balíčku, který se objevuje vedle názvu balíčku na stránce pro výběr balíčku v průvodci nástrojem Package Deployer.
Změnit dlouhý název balíčku úpravou návratové hodnoty pod vlastností
GetLongNameOfImport
.public override string GetLongNameOfImport { get { return "Package Long Name"; } }
Dlouhý název balíčku se objeví na další stránce poté, co jste vybrali balíček, který chcete nainstalovat.
Balíček navíc obsahuje následující funkce a proměnné:
Název Typ Popis CreateProgressItem(String) Function Slouží k vytvoření nové položky postupu v uživatelském rozhraní (UI). RaiseUpdateEvent(String, ProgressPanelItemStatus) Function Slouží k aktualizaci postupu vytvořeného voláním CreateProgressItem(String).
ProgressPanelItemStatus je výčet s následujícími hodnotami:
Pracovní = 0
Dokončeno = 1
Chyba = 2
Varování = 3
Neznámé = 4RaiseFailEvent(String, Exception) Function Slouží k selhání importu aktuálního stavu pomocí zprávy o výjimce. IsRoleAssoicatedWithTeam(Guid, Guid) Function Slouží k určení, zda je role přidružena k zadanému týmu. IsWorkflowActive(Guid) Function Slouží k určení, zda je zadaný pracovní postup aktivní. PackageLog Ukazatel třídy Ukazatel inicializovaného rozhraní protokolování balíčku. Toto rozhraní používá balíček k protokolování zpráv a výjimek do souboru protokolu balíčku. RootControlDispatcher Vlastnost Rozhraní dispečera sloužící k tomu, abyste mohli během implementace balíčku vykreslit vlastní uživatelské rozhraní. Toto rozhraní slouží k zalomení všech prvků nebo příkazů uživatelského rozhraní. Před použitím této proměnné je důležité zkontrolovat, zda obsahuje nebo neobsahuje hodnotu null, protože může být nastavena na hodnotu. CrmSvc Vlastnost Ukazatel na třídu CrmServiceClient, která umožňuje, aby balíček adresoval Dynamics 365 z balíčku. Tento ukazatel použijte k provedení metod SDK a dalších akcí v přepsaných metodách. DataImportBypass Vlastnost Zadejte, zda Dynamics 365 Package Deployer přeskočí všechny operace importu dat, jako je import ukázkových dat Dataverse, data plochých souborů a data exportovaná z Configuration Migration Tool. Zadejte true nebo false. Výchozí hodnota je false
.OverrideDataImportSafetyChecks Vlastnost Určete, zda Dynamics 365 Package Deployer vynechává některé ze svých bezpečnostních kontrol, což pomáhá zlepšit výkonnost importu. Zadejte true
nebofalse
. Výchozí hodnota jefalse
.
Měli byste nastavit tuto vlastnost natrue
, pouze pokud cílová instance Dataverse neobsahuje žádná data.Uložte projekt. Dalším krokem je sestavení balíčku.
Sestavení a nasazení
Následující části popisují, jak sestavit a nasadit balíček.
Sestavení
Sestavení balíčku je popsáno níže v závislosti na tom, jaký nástroj používáte.
Chcete-li sestavit balíček vytvořený pomocí CLI, můžete načíst soubor .csproj do Visual Studio, ale místo toho použijeme příkaz dotnet a MSBuild. Níže uvedený příklad předpokládá, že pracovní adresář obsahuje soubor *.csproj.
> dotnet publish
DeploymentPackage -> C:\Users\peter\Downloads\DeploymentPackage\bin\Debug\DeploymentPackage.1.0.0.pdpkg.zip
Volitelně se můžete podívat na detaily sestaveného balíčku.
> pac package show --package .\bin\Debug\DeploymentPackage.1.0.0.pdpkg.zip
Váš balíček tvoří následující soubory ve složce <Project>\Bin\Debug.
- Složka <PackageName>: Název složky je stejný jako název složky, kterou jste změnili pro název složky balíčku v kroku 2.g této části Přidání vlastního kódu. Tato složka obsahuje všechna řešení, konfigurační data, ploché soubory a obsah balíčku.
Poznámka:
Můžete vidět složku .NET (např. net472) obsahující složku pdpublish. Vaše DLL a další soubory projektu jsou v této složce pdpublish.
- <PackageName>.dll: Sestavení obsahuje vlastní kód vašeho balíčku. Výchozí název sestavení je stejný jako název projektu.
Nasadit
Po vytvoření balíčku jej můžete nasadit do instance Dataverse pomocí nástroje Package Deployer nebo prostředí Windows PowerShell nebo příkaz rozhraní příkazového řádku.
K nasazení pomocí nástroje Package Deployer si nejprve stáhněte tento nástroj, jak je popsáno v části Vývojové nástroje Dataverse. Dále postupujte podle podrobných informací o nasazení balíčků v článku Nasazení balíčků pomocí Package Deployer nebo Windows PowerShell.
Chcete-li provést nasazení pomocí rozhraní příkazového řádku, použijte příkaz
pac package deploy
.> pac package deploy --package .\bin\Debug\DeploymentPackage.1.0.0.pdpkg.zip
Poznámka:
Chcete-li nasadit balíček do cílového prostředí pomocí rozhraní příkazového řádku, musíte nejprve nastavit profil ověřování a vybrat organizaci. Další informace: pac auth create, pac org select
Osvědčené postupy
Níže je uvedeno několik tipů osvědčených postupů, které byste měli dodržovat při práci s balíčky Package Deployer.
Vytváření balíčků
Při vytváření balíčků musí vývojáři:
- Zajistit, že jsou podepsány sestavení balíčků.
Nasazování balíčků
Při nasazování balíčků musí správci aplikace Dataverse:
- Trvat na sestavení podepsaného balíčku tak, abyste mohli sledovat sestavení zpět k jeho zdroji.
- Otestovat balíček na předprodukční instanci, nejlépe zrcadlový obraz produkční instance, před jeho spuštěním v produkční instanci.
- Zálohovat produkční instanci před nasazením balíčku.