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.

  1. 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.

  2. Laden Sie den Microsoft Dynamics CRM-SDK herunter. Führen Sie dann die Paketdatei aus, um den Inhalt des Pakets zu extrahieren.

  3. Durchsuchen Sie den SDK\Tools\PackageDeployer-Ordner, und kopieren Sie Paketordner und -Assembly aus dem c:\DeployPackage-Ordner in den SDK\Tools\PackageDeployer-Ordner.

  4. Nachdem die Dateien kopiert wurden, führen Sie das Tool aus, indem Sie auf die Datei PackageDeployer.exe im Ordner SDK\Tools\PackageDeployer doppelklicken.

  5. Im Hauptbildschirm des Tools klicken Sie auf Weiter.

  6. 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.

  7. 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.

  8. Wählen Sie das bereitzustellende Paket aus, und klicken Sie auf Weiter.

    Select your package in the Package Deployer Tool

  9. 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:

  1. 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.

  2. Starten Sie Windows PowerShell auf dem Computer mit erweiterten Rechten (als Administrator ausführen.)

  3. 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
    
  4. 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
    
  5. 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
    
  6. 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.

  1. 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
    
  2. 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
    
  3. 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

  1. 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
    
  2. 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.

  3. 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