Bereitstellen von Paketen mit Dynamics CRM Package Deployer und Windows PowerShell
Veröffentlicht: Februar 2017
Gilt für: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Hinweis
Die Informationen, die hier bereitgestellt werden, gelten für Dynamics 365 vor Dynamics 365 (online), Version 9.0. Die aktuelle Dokumentation finden Sie unter Bereitstellen von Paketen mit Dynamics CRM Package Deployer und Windows PowerShell.
Microsoft Dynamics CRM Package Deployer eröaubt es Administratoren, Pakete auf einer Dynamics 365 (lokal)- oder Microsoft Dynamics 365 (online)-Instanz bereitzustellen. Ein "Paket" kann aus einem oder allen der folgenden Elemente bestehen:
Eine oder mehrere Dynamics 365-Lösungsdateien.
Flache Dateien oder exportierte Datendateien aus dem Konfigurationsmigrationstool. Weitere Informationen zum Konfigurationsmigrationstool finden Sie in der Konfigurationsdaten verwalten.
Benutzerdefinierter Code, der ausgeführt werden kann, während oder nachdem das Paket auf Microsoft Dynamics 365 bereitgestellt wurde.
Inhaltsspezifische HTML für das Paket, das bei Start und Ende des Paketbereitstellungsprozesses angezeigt werden kann. Dies kann nützlich sein, um eine Beschreibung der Lösungen und Dateien bereitzustellen, die im Paket bereitgestellt werden.
Entwickler erstellen Pakete, indem sie die Paketbereitstellungsvorlage in Microsoft Visual Studio verwenden.Weitere Informationen:MSDN: Erstellen von Paketen für CRM Package Deployer
Nachdem das Paket erstellt wurde, können Sie es entweder bereitstellen, indem Sie CRM-Paketbereitstellungsprogramm ausführen, oder indem Sie Windows PowerShell-cmdlets für das Tool verwenden.
Wichtig
Bevor Sie ein Paket in eine Produktionsorganisation importieren und dort ausführen, testen Sie das Paket in einer produktionsfremden Umgebung, die die Produktionsorganisation spiegelt.
Führen Sie vor der Bereitstellung eines Pakets stets ein Backup der Produktionsorganisation durch.
In diesem Thema
Bereitstellen von Paketen mit Paketbereitstellungstool
Verwenden von Windows PowerShell, um Pakete bereitzustellen
Paketbereitstellungsprobleme mithilfe der Protokolldateien beheben
Bewährte Methoden für die Bereitstellung von Paketen
Bereitstellen von Paketen mit Paketbereitstellungstool
Sie können das Paketbereitstellungstool (packagedeployer.exe) verwenden, um Pakete in folgenden Weisen bereitzustellen.
Verwenden von Paketbereitstellungstool zum Bereitstellen von Paketen
Verwenden von Paketbereitstellungstool in der Befehlszeile
Verwenden von Paketbereitstellungstool zum Bereitstellen von Paketen
Das Paketbereitstellungstool kan nur ein Paket gleichzeitig bereitstellen. Es bietet Benutzern jedoch die Möglichkeit, unter mehreren Paketen, die im Paketbereitstellungstool-Verzeichnis verfügbar sind, ein Paket zur bereitstellung auszuwählen. Einige der Bildschirme und Aktionen im Tool variieren aufgrund der Paketdefinition. Sie müssen das Paketbereitstellungstool nicht installiert haben. Laden Sie es einfach herunter und führen Sie es aus.
Erhalten Sie das Paket, das bereitgestellt werden soll. Ein Paket ist eine Sammlung von Dateien und Ordner, die im Visual Studio-Projektordner (<Project>\Bin\Debug) erstellt werden, wenn Sie Ihr Paketprojekt in Visual Studio erstellen. Kopieren Sie Folgendes im Projekt-Debug-Ordner:
<PackageName>-Ordner: Dieser Ordner enthält die Lösungen, Importkonfiguration und Inhalte für das Paket.
<PackageName>.dll: Die Assembly enthält den Code für das Paket. Standardmäßig ist der Name der Assemblys identisch mit Visual Studio-Projektname.
Ausführliche Informationen zum Erstellen eines Pakets mit Visual Studio finden Sie unter MSDN: Erstellen eines Pakets für Package Deployer.
In diesem Thema wird angenommen, dass Paketordner und -Assembly vom Visual Studio-Projektdebugordner (<Project>\Bin\Debug) in den Ordner c:\DeployPackage kopiert werden.
Laden Sie den Microsoft Dynamics CRM-SDK herunter. Führen Sie dann die Paketdatei aus, um den Inhalt des Pakets zu extrahieren.
Durchsuchen Sie den SDK\Tools\PackageDeployer-Ordner, und kopieren Sie Paketordner und -Assembly aus dem c:\DeployPackage-Ordner in den SDK\Tools\PackageDeployer-Ordner.
Nachdem die Dateien kopiert wurden, führen Sie das Tool aus, indem Sie auf die Datei PackageDeployer.exe im Ordner SDK\Tools\PackageDeployer doppelklicken.
Im Hauptbildschirm des Tools klicken Sie auf Weiter.
Geben Sie im Bildschirm Verbinden mit Microsoft Dynamics 365 Authentifizierungsdetails ein, um eine Verbindung mit Ihrem Dynamics 365-Server herzustellen, in der Sie das Paket bereitstellen möchten. Wenn Sie mehrere Organisationen haben und die Organisation auswählen wollen, in der Sie das Paket bereitstellen möchten, wählen Sie das Kontrollkästchen Immer Liste der verfügbaren Organisationen anzeigen aus. Klicken Sie auf Anmeldung.
Wenn Sie über mehrere Organisationen auf Ihrem Dynamics 365-Server verfügen, wählen Sie eine Dynamics 365-Organisation aus, mit der Sie eine Verbindung herstellen möchten.
Wählen Sie das bereitzustellende Paket aus, und klicken Sie auf Weiter.
Befolgen Sie die Anweisungen auf den folgenden Bildschirmen, um die Bereitstellung des Pakets abzuschließen.
Die Bildschirme werden basierend auf der Definition des Pakets angezeigt, das Sie für die Bereitstellung ausgewählt haben. Für eine vollständige Paketbereitstellung, die Paketbereitstellungstool verwendet, lesen Sie das Thema für die Bereitstellung von Unified Service Desk-Paketen: Erstellen von Unified Service Desk-Beispielanwendungen für CRM Server mithilfe von Package Deployer.
Verwenden von Paketbereitstellungstool in der Befehlszeile
Systemadministratoren und Anpasser können Parameter wie einen regionalen Sprachcode über die Befehlszeile an packagedeployer.exe übergeben. Diese Parameter können möglicherweise nur konfiguriert werden, indem Paketbereitstellungstool über die Befehlszeile ausgeführt wird.
Hinweis
Das Feature wurde erstmals in Microsoft Dynamics CRM Online 2016-Update 0.1 eingeführt.
Verfügbare Parameter sind in dieser Tabelle enthalten.
Parameter |
Beschreibung |
Standardwert |
---|---|---|
RuntimePackageSettings |
Weist packagedeployer.exe an, Befehlszeilenparameter wie LCID und SkipChecks zu akzeptieren. |
Nicht verfügbar |
LCID=localeID |
Spezifiziert die Gebietsschema-ID wie 1033 für Englisch - Vereinigte Staaten oder 1036 für Französisch - Frankreich aus den verfügbaren Gebietsschema-IDs in dem Paket. Wenn nichts angegeben ist, wird die Standardsprache verwendet. |
Verwenden der Standardsprache |
SkipChecks=true/false |
Verwenden Sie diesen Parameter nur, wenn die Zielumgebung keine anderen Lösungen oder Anpassungen enthält. Wenn auf „true“ gesetzt, umgeht der Lösungsimport einige Sicherheitskontrollen, was die Leistung des Imports verbessern kann. |
Falsch |
Das folgende Beispiel weist CRM-Paketbereitstellungsprogramm an, einige Sicherheitskontrollen zu umgehen und legt die zu importierende Sprache auf Polnisch fest.
packagedeployer.exe /Settings:"SkipChecks=true|lcid=1045"
Hinweis
Benutzen Sie das Pipe-Zeichen |, um Parameter voneinander zu trennen, wenn Sie packagedeployer.exe auf der Befehlszeile mit mehreren Parametern ausführen.
Weitere Informationen zu Parametern und Werten, die an packagedeployer.exe übergeben werden können, finden Sie unter MSDN: Erstellen von Paketen für CRM Package Deployer
Verwenden von Windows PowerShell, um Pakete bereitzustellen
Das Paketbereitstellungstool stellt auch Windows PowerShell-Support bereit, um Pakete bereitzustellen.
Führen Sie folgende Schritte aus, um die PowerShell-cmdlets zu verwenden, um Pakete bereitzustellen:
Voraussetzungen
Registrieren des Cmdlets
Verwenden des Cmdlet zum Abrufen von Paketen
Verwenden des Cmdlet, um die Verbindung mit Ihrer Dynamics 365-Instanz herzustellen
Verwenden des Cmdlet zum Bereitstellen von Paketen
Ausführliche Hilfe zu Cmdlets erhalten
Voraussetzungen
Die Voraussetzungen für die Verwendung der PowerShell-Cmdlets:
PowerShell 3.0 oder höher ist erforderlich, um Pakete bereitzustellen, indem PowerShell verwendet wird. Rufen Sie zur Prüfung der PowerShell-Version ein PowerShell-Fenster auf und führen Sie dann den folgenden Befehl aus: $Host.
Legen Sie die Ausführungsrichtlinie für die Ausführung der signierten PowerShell-Scripts fest. Rufen Sie hierzu als Administrator ein PowerShell-Fenster auf und führen Sie den folgenden Befehl aus: Set-ExecutionPolicy -ExecutionPolicy AllSigned
Registrieren des Cmdlets
Sie müssen die Windows PowerShell-cmdlets für das Paketbereitstellungstool registrieren, bevor Sie es verwenden können. Um die cmdlets zu registrieren:
Wenn noch nicht geschehen, laden Sie die das Dynamics 365-SDK-Paket von Microsoft Download Center herunter, und führen Sie die Paketdatei aus, um den Inhalt des Pakets zu extrahieren. Angenommen, Sie haben das Paket in den Ordner c:\CRM auf dem Computer extrahiert. Das Paketbereitstellungstool und die anderen erforderlichen Dateien werden an dem folgenden Ort verfügbar: c:\CRM\SDK\Tools\PackageDeployer.
Starten Sie Windows PowerShell auf dem Computer mit erweiterten Rechten (als Administrator ausführen.)
Bei der Eingabeaufforderung im Windows PowerShell-Fenster ändern Sie das Verzeichnis im Windows PowerShell-Ornder unter dem PackageDeployer-Ordner. In diesem Fall:
cd c:\CRM\SDK\Tools\PackageDeployer\PowerShell
Führen Sie das Skript RegisterXRMTooling.ps1 aus, um die Package Deployer Windows PowerShell-Assembly (dll) anzumelden, und installieren Sie das Windows PowerShell-Snap-in für Paketbereitstellungstool. Geben Sie dazu den folgenden Befehl ein, und drücken Sie die EINGABETASTE:
.\RegisterXRMTooling.ps1
Fügen Sie das Windows PowerShell-Snap-In für XRM-Tooling hinzu: Dieses registriert die folgenden Cmdlets: Get-CrmConnection und Get-CrmOrganizations.
Add-PSSnapin Microsoft.Xrm.Tooling.Connector
Fügen Sie das Windows PowerShell-Snap-In für Package Deployer hinzu: Dieses registriert die folgenden Cmdlets: Get-CrmPackages und Import-CrmPackage.
Add-PSSnapin Microsoft.Xrm.Tooling.PackageDeployment
Sie können jetzt diese Windows PowerShell-Cmdlets kann verwenden. Um die Cmdlets aufzulisten, die Sie registriert haben, führen Sie den folgenden Befehl an der Eingabeaufforderung im Windows PowerShell-Fenster aus.
Get-Help “Crm”
Verwenden des Cmdlet zum Abrufen von Paketen
Bevor Sie das Cmdlet verwenden können, sollten Sie sicherstellen, dass Sie das Paket in den Ordner PackageDeployer (in diesem Fall c:\CRM\SDK\Tools\PackageDeployer) kopiert haben. Ein Paket ist eine Sammlung von Dateien und Ordner, die im Visual Studio-Projektordner (<Project>\Bin\Debug) erstellt wird, wenn Sie Ihr Projekt in Visual Studio erstellen. Kopieren Sie die gesamten Inhalt des Projekt-Debug-Ordners in den Ordner PackageDeployer. Ausführliche Informationen zum Erstellen eines Pakets mit Visual Studio finden Sie unter MSDN: Erstellen von Paketen für CRM Package Deployer.
Verwenden Sie im PowerShell-Fenster das folgende Cmdlet, um eine Liste der Pakete zurückzugeben, die für den Import im angegebenen Ordner verfügbar sind (in diesem Fall c:\CRM\SDK\Tools\PackageDeployer):
Get-CrmPackages –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer
Wenn Sie Informationen zu einem Paket in einem Ordner benötigen, können Sie das Get-CrmOrganization-Cmdlet zusammen mit dem Parameter –PackageName verwenden, um den Namen der Assemblys in dem Ordner anzugeben, der die Paketdefinition enthält.
Get-CrmPackages –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer –PackageName SampleCRMPackage.dll
Der Ort des Paketassemblys kann unter Verwendung des Cmdlets „Get-CrmPackages“ in einer Variablen gespeichert werden. Anschließend kann er im Cmdlet „Import-CrmPackage“ verwendet werden, um einen Wert für den Parameter PackageDirectory anzugeben. Sie können beispielsweise die Informationen eines oder mehrerer vom Cmdlet „Get-CrmPackages“ zurückgegebener Pakete in einer Variable mit der Bezeichnung „$MyPackages“ speichern.
$MyPackages = Get-CrmPackages –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer
Anzeige aller Pakete.
$MyPackages
Anzeige lediglich des dritten Pakets.
$MyPackages[2].PackageAssemblyLocation
Anschließend können Sie auf jedes Paket in dem Array von 0 bis n verweisen. Beispielsweiseimportiert dieses Cmdlet das erste in „$MyPackages“ gefundene Paket.
Import-CrmPackage -CrmConnection $CRMConn -PackageDirectory $MyPackages[0].PackageAssemblyLocation
Hinweis
Der Parameter „PackageAssemblyLocation“ und die Möglichkeit zur Anzeige des Ordnerorts und des Namens eines Pakets wurden mit Update für Dynamics 365 (online und lokal), Dezember 2016 eingeführt.Weitere Informationen:Dynamics 365-SDK
Verwenden des Cmdlet, um die Verbindung mit Ihrer Dynamics 365-Instanz herzustellen
Stellen Sie die Anmeldeinformationen für die Verbindun mit Ihrer Microsoft Dynamics 365 (online)- oder Dynamics 365 (lokal)-Instanz bereit. Bei Ausführung des folgenden Befehls werden Sie aufgefordert, Ihren Benutzernamen und Ihr Kennwort einzugeben, um eine Verbindung mit der Dynamics 365-Instanz herzustellen, und wir speichern sie in der Variablen $Cred und verwenden sie später für die Verbindung mit Ihrem Dynamics 365 Server.
$Cred = Get-Credential
Verwenden Sie den folgenden Befehl, um eine Verbindung mit der Microsoft Dynamics 365 (online)- oder Dynamics 365 (lokal)-Instanz zu erhalten. Wir speichern die Verbindungsinformationen in der $CRMConn-Variablen:
Wenn Sie eine Verbindung mit der Dynamics 365 (lokal)-Instanz herstellen:
$CRMConn = Get-CrmConnection -ServerUrl http://<your_CRM_Server> -OrganizationName <your_Org_Name> -Credential $Cred
Wenn Sie eine Verbindung mit dem Microsoft Dynamics 365 (online)-Server herstellen:
$CRMConn = Get-CrmConnection -DeploymentRegion NorthAmerica –OnlineType Office365 –OrganizationName <your_Org_Name> -Credential $Cred
Hinweis
Für den Parameter DeploymentRegion sind gültige Werte NorthAmerica, EMEA, APACSouthAmerica, Oceania, JPN und NorthAmerica2. Für den Parameter OnlineType sind gültige Werte Office365 und LiveID.
Die angegebenen Anmeldeinformationen werden überprüft, wenn Sie den Befehl in Schritt 2 ausführen.
Verwenden des Cmdlet zum Bereitstellen von Paketen
Anschließend können Sie die Dynamics 365-Verbindungsinformationen verwenden, die in der $CRMConn-Variablen gespeichert sind, um Pakete in der Dynamics 365-Instanz Pakete bereitzustellen. Der folgende Befehl stellt ein Paket bereit, entpackt es im Ordner c:\UnpackedFiles und zeichnet Informationen in einer Protokolldatei im Ordner c:\MyLogFiles auf.
Import-CrmPackage –CrmConnection $CRMConn –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer –PackageName SampleCRMPackage.dll –UnpackFilesDirectory c:\UnpackedFiles -LogWriteDirectory C:\MyLogFiles -Verbose
Hinweis
-
PackageDirectory, CrmConnection und PackageName-Parameter sind erforderlich.
-
Anstatt den Paketordner manuell anzugeben, können Sie eine Variable mit dem Parameter „PackageDirectory“ verwenden.Weitere Informationen:Verwenden des Cmdlet zum Abrufen von Paketen
-
Für den Parameter PackageName müssen Sie den Namen derAssembly angeben, die die Paketdefinition enthält.
-
Sie müssen nicht den Parameter UnpackFilesDirectory angeben, wenn das Paket während der Paketbereitstellung keine Dateien entpackt. Bei der Definition eines Pakets in Visual Studio geben Sie an, ob die Dateien mithilfe des Parameters agentdesktopzipfile in der ImportConfig.xml-Datei entpackt werden.Weitere Informationen:MSDN: Erstellen von Paketen für CRM Package Deployer
-
Der Parameter Verbose ist optional und wird verwendet, um ein detailliertes Protokoll der Aktivitäten anzuzeigen, die beim Paketbereitstellungsprozesses ausgeführt werden.
-
Der optionale RuntimePackageSettings-Parameter kann zusammen mit den folgenden Parametern verwendet werden:
-
Der LCID=localeID-Parameter spezifiziert die Gebietsschema-ID wie 1033 für Englisch - Vereinigte Staaten oder 1036 für Französisch - Frankreich aus den verfügbaren Gebietsschema-IDs im Paket. Wenn nichts angegeben ist, wird die Standardsprache verwendet.
-
Der
SkipChecks=true/false-Parameter sollte nur verwendet werden, wenn die Zielumgebung keine anderen Lösungen oder Anpassungen enthält. Wenn auf „true“ gesetzt, umgeht der Lösungsimport einige Sicherheitskontrollen, was die Leistung des Imports verbessern kann.
-
-
Der Ordner, den Sie angeben, wenn Sie den LogWriteDirectory-Parameter verwenden, muss bereits vorhanden sein, und der Benutzer, der das Cmdlet „Import-CrmPackage“ verwendet, muss über Schreibberechtigungen für den Ordner verfügen. Dazu ist der Parameter „-Verbose“ erforderlich, wenn Sie den Parameter „LogWriteDirectory“ verwenden.
Der Parameter „LogWriteDirectory“ wurde zuerst mit Update für Dynamics 365 (online und lokal), Dezember 2016 eingeführt.Weitere Informationen:Dynamics 365-SDK
Der folgende Beispielbefehl importiert ein Paket namens SampleCRMPackage und spezifiziert Englisch - Vereinigte Staaten (1033) als die Sprache für den Import des Pakets.
Import-CrmPackage –CrmConnection $CRMConn –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer –PackageName SampleCRMPackage.dll –UnpackFilesDirectory c:\UnpackedFiles –RuntimePackageSettings LCID=1033
Ausführliche Hilfe zu Cmdlets erhalten
Im PowerShell-Fenster verwenden Sie das Get-Help-Cmdlet, um eine ausführliche Hilfe zum Cmdlet anzuzeigen. Beispielsweise, um ausführliche Hilfe zum Import-CrmPackage-Cmdlet zu erhalten:
Get-Help Import-CrmPackage -full
Um die Onlinehilfe zu den Cmdlets anzuzeigen, siehe CRM-PowerShell-Referenz.
Paketbereitstellungsprobleme mithilfe der Protokolldateien beheben
Das Paketbereitstellungstool stellt Protokollierungssupport zum Abrufen detaillierter Fehlerinformationen zur Verfügung, die während der Anmeldung bei der Microsoft Dynamics 365-Instanz unter Verwendung des Tools und der Bereitstellung von Paketen auftreten können. Das Tool generiert standardmäßig drei Protokolldateien, die am folgenden Speicherort auf dem Computer verfügbar sind, auf dem Sie das Tool ausführen: c:\Users\<UserName>\AppData\Roaming\Microsoft\Microsoft Dynamics CRM Package Deployer\<Version>. Um einen anderen Ordner anzugeben, verwenden Sie den Cmdlet-Parameter „-LogWriteDirectory“ PowerShell.Weitere Informationen:Verwenden des Cmdlet zum Abrufen von Paketen
Login_ErrorLog.log: Dadurch werden Informationen zu Problemen angegeben, die während der Verwendung des Tools zur Anmeldung bei der Dynamics 365 aufgetreten sind. Wenn es Probleme gibt während der Anmeldung gibt, wird auf dem Anmeldungsbildschirm des Tools eine Meldung mit einem Link zu dieser Protokolldatei angezeigt. Die Meldung besagt, dass ein Fehler beim Verarbeiten der Anmeldeanforderung aufgetreten ist und der Benutzers kann das Fehlerprotokoll anzeigen. Sie können auf den Link in der Meldung klicken, um diese Protokolldatei anzuzeigen. Die Protokolldatei wird erstellt, wenn zum ersten Mal Anmeldungsprobleme in dem Tool auftreten. Danach wird die Protokolldatei verwendet, um Informationen über ein Anmeldungsproblem aufzuzeichnen, wann immer es auftritt.
PackageDeployer.log: Bietet detaillierte Informationen zu der jeweiligen Aufgabe, die während der Bereitstellung der Pakete im Tool ausgeführt wird. Sie können die Protiokolldatei im Tool anzeigen, indem Sie auf auf den Link Protokolldatei anzeigen unten auf dem Bildschirm klicken.
ComplexImportDetail.log: Bietet detaillierte Informationen zu den Daten, die in der letzten Bereitstellung mithilfe der Tools importiert wurden. Bei jeder Bereitstellung eines Paketes unter Verwendung dieses Tools werden die vorhandenen Details der Protokolldatei in eine Datei namens ComplexImportDetail._old.log in demselben Verzeichnis verschoben und die ComplexImportDetail.log-Datei zeigt Informationen über die aktuellen, mit dem Tool vorgenommenen Importvorgänge an.
Bewährte Methoden für die Bereitstellung von Paketen
Beim Bereitstellen von Dynamics 365-Paketen müssen Administratoren:
Auf einer signierten Paketassembly bestehen, damit sie eine Assembly bis zu ihrer Quelle zurück nachverfolgen können.
das Paket auf einer Vor-Produktionsinstanz testen, (vorzugsweise als Spiegelbild der Produktionsinstanz), bevor sie in einer Produktionsinstanz ausgeführt wird.
Eine Sicherungskopie der Produktionsinstanz erstellen, bevor ein Paket bereitgestellt wird.
Siehe auch
MSDN: Erstellen von Paketen für CRM Package Deployer
Verwalten von Dynamics 365
© 2017 Microsoft. Alle Rechte vorbehalten. Copyright