Distribuera paket med verktyget Package Deployer och Windows PowerShell för Dynamics CRM

Gäller för Dynamics 365 (online), version 9.x
Gäller för Dynamics 365 (online), version 8.x

Microsoft Dynamics CRM Package Deployer gör det möjligt för administratörer att distribuera paket på en Dynamics 365 (on-premises)- eller Dynamics 365 (online)-instans. Ett paket kan bestå av några eller alla av följande:

  • En eller flera Dynamics 365-lösningsfiler.

  • Platta eller exporterade datafiler från Configuration Migration-verktyget. Mer information om Configuration Migration-verktyget, finns i Hantera dina konfigurationsdata.

  • Anpassad kod som kan köras under eller efter att paketet har distribuerats till Dynamics 365.

  • HTML-innehåll i paketet som kan visas i början och slutet av processen för distribution av paket. Detta kan vara användbart för att ge en beskrivning av de lösningar och filer som distribueras i paketet.

    Utvecklare kan skapa paket med hjälp av mallen för distribution av paket i Visual Studio. Mer information: Skapa paket för Dynamics 365 Package Deployer

    När du har skapat ett paket kan du distribuera det antingen genom att köra CRM Package Deployer eller med hjälp av Windows PowerShell-cmdlets för verktyget.

Viktigt

Innan du importerar och kör ett paket för en produktionsorganisation, testa paketet på en icke-produktion som är en spegelbild av produktionsorganisationen.

Säkerhetskopiera alltid produktionsorganisationen innan du distribuerar ett paket.


Distribuera paket med Package Deployer-verktyget

Du kan använda Package Deployer-verktyget (packagedeployer.exe) för att distribuera paket på följande sätt.

Använda CRM Package Deployer för att distribuera paket

Använd CRM Package Deployer-verktyget på kommandoraden

Använda Package Deployer för att distribuera paket

Package Deployer-verktyget kan bara bearbeta ett paket åt gången. Detta ger dock användarna möjlighet att välja ett paket för distribution bland flera paket som är tillgängliga i katalogen för Package Deployer-verktyget. Vissa skärmar och åtgärder i verktyget skiljer sig åt beroende på paketdefinitionen. Du behöver inte installera Package Deployer-verktyget. Bara hämta och köra det.

  1. Hämta paketet som ska distribueras. Ett paket är en samling filer och mappar som skapas i projektmappen för Visual Studio (<Projekt> \Bin\Debug) när du skapar ett paketprojekt i Visual Studio. Kopiera följande från mappen Project Debug:

    • <PackageName>-mappen: den här mappen innehåller lösningarna, importkonfigurationen och innehållet för ditt paket.

    • <PackageName>.dll: sammansättningen innehåller koden för ditt paket. Som standard är namnet på sammansättningen detsamma som för ditt Visual Studio-projektnamn.

      Mer information om hur du skapar ett paket med hjälp av Visual Studio, se skapa ett paket för verktyget Package Deployer.

      För det här avsnittet antar vi att paketmappen och sammansättningen från Visual Studio mappen project debug (<Projekt> \Bin\Debug) kopieras till mappen c:\DeployPackage.

  2. Hämta verktyget Package Deployer. Verktyget Package Deployer är tillgängligt som ett NuGet-paket. Om du vill använda Package Deployer måste du hämta paketet och extrahera det på din lokala dator med hjälp av nuget.exe.

    Hämta nuget.exe från https://www.nuget.org/downloads och spara filen på datorn, till exempel på d:\. Kör sedan följande kommando från kommandotolken för att extrahera paketinnehållet till en mapp på datorn, till exempel PD:
    d:\nuget install Microsoft.CrmSdk.XrmTooling.PackageDeployment.Wpf -Version [VERSION] -O d:\PD

    När du har extraherat verktyget Package Deployer bläddrar du till mappen [ExtractedLocation]\tools där filen PackageDeployer.exe finns.

  3. Kopiera paketmappen och sammansättningen från c:\DeployPackage till mappen [ExtractedLocation]\tools.

  4. Efter att filerna kopierats kör du verktyget genom att dubbelklicka på filen PackageDeployer.exe i mappen [ExtractedLocation]\tools.

  5. Klicka på Fortsätt i huvudfönstret för verktyget.

  6. På skärmen Anslut till Microsoft Dynamics 365 anger du dina autentiseringsuppgifter för att ansluta till den Dynamics 365-server där du vill distribuera paketet. Om du har flera organisationer på servern och vill välja den organisation där du vill distribuera paketet markerar du kryssrutan Visa alltid listan över tillgängliga organisationer. Klicka på Logga in.

  7. Om du har flera organisationer på din Dynamics 365-server väljer du en Dynamics 365-organisation att ansluta till.

  8. Välj det paket som ska distribueras och klicka på Nästa.

    Välj ditt paket i Package Deployer-verktyget

  9. Följ instruktionerna på de efterföljande skärmarna för att slutföra installationen av paketet.

    Skärmarna som visas baseras på definitionen av det paket du har valt för distribution. Information om en paketdistribution från slutpunkt till slutpunkt som använder Package Deployer-verktyget finns i avsnittet om distribution av Unified Service Desk-paket: Distribuera Unified Service Desk-exempelprogram till CRM Server med hjälp av Package Deployer

Använd Package Deployer-verktyget på kommandoraden

Systemadministratörer och anpassare kan överföra parametrar, till exempel en regional språkkod till packagedeployer.exe från kommandoraden. Dessa parametrar kan endast konfigureras genom att köra Package Deployer-verktyget på kommandoraden.

Anteckning

Den här funktionen introducerades först i Dynamics CRM Online 2016, uppdatering 0.1.

Tillgängliga parametrar finns i den här tabellen.

Parameter Beskrivning Standardvärde
RuntimePackageSettings Instruerar packagedeployer.exe att acceptera kommandoradsparametrar som LCID och SkipChecks. Saknas
LCID=localeID Anger språk-ID, t.ex. 1033 för Engelska - USA eller 1036 för Franska - Frankrike från tillgängliga ID för nationella inställningar i paketet. Om inget anges används standardspråket. Använd standardspråket
SkipChecks=sant/falskt Använd endast denna parameter när målmiljön inte innehåller några andra lösningar eller anpassningar. När värdet är true, kringgår lösningsimporten vissa säkerhetskontroller, vilket kan förbättra prestanda för import. Falskt

Följande exempel instruerar CRM Package Deployer att kringgå vissa säkerhetskontroller och anger språket att importera som polska.

packagedeployer.exe RuntimePackageSettings SkipChecks=true | lcid=1045  

Anteckning

Använd tecknet vertikalstreck | för att avgränsa parametrar när du kör packagedeployer.exe på kommandoraden med flera parametrar.

Läs mer om parametrar och värden som kan skickas till packagedeployer.exe i skapa paket för CRM Package Deployer.

Använda Windows PowerShell för att distribuera paket

Package Deployer-verktyget ger även Windows PowerShell-stöd för att distribuera paket.

Utför följande steg för att använda PowerShell-cmdletar för distribution av paket:

Förutsättningar

Importera PowerShell-modulen Package Deployer

Använda cmdleten för att hämta paket

Använda cmdleten för att ansluta till din Dynamics 365 Server

Använda cmdleten för att distribuera paket

Få detaljerad hjälp med cmdletar

Förutsättningar

Här är förutsättningarna för att använda PowerShell-cmdletarna:

  • PowerShell 3.0 eller senare krävs för att distribuera ett paket med hjälp av PowerShell. Du kontrollerar din PowerShell-version genom att köra ett PowerShell-fönster och sedan köra följande kommando: $Host

  • Ange körningsprincipen för att köra det signerade PowerShell-skriptet. Det gör du genom att köra ett PowerShell-fönster som administratör och sedan köra följande kommando: Set-ExecutionPolicy -ExecutionPolicy AllSigned

Importera PowerShell-modulen Package Deployer

Du måste importera Windows PowerShell-modulen för Package Deployer-verktyget innan du kan använda det. För att importera:

  1. Hämta PowerShell-filer för Package Deployer. PowerShell-filerna för verktyget Package Deployer är tillgängliga som ett NuGet-paket. Om du vill använda filerna måste du hämta paketet och extrahera det på din lokala dator med hjälp av nuget.exe.

    Hämta nuget.exe från https://www.nuget.org/downloads och spara filen på datorn, till exempel på d:\. Kör sedan följande kommando från kommandotolken för att extrahera paketinnehållet till en mapp på datorn, till exempel PD PowerShell:
    d:\nuget install Microsoft.CrmSdk.XrmTooling.PackageDeployment.PowerShell -Version [VERSION] -O d:\PD-PowerShell

    När du har extraherat PowerShell-filerna för verktyget Package Deployer bläddrar du till mappen [ExtractedLocation]\tools där filerna finns.

  2. Starta Windows PowerShell på din dator med förhöjda privilegier (Kör som administratör).

  3. I Kommandotolken i Windows PowerShell-fönstret byter du katalog till den mapp där du extraherade dina filer. Gör följande i det här fallet:

    cd [ExtractedLocation]\tools\  
    
  4. Kör det RegisterXRMPackageDeployment.ps1-skript som är tillgängligt på [ExtractedLocation]\tools-mappen genom att köra följande kommando:

    .\RegisterXRMPackageDeployment.ps1  
    

    Du är nu redo att använda Windows PowerShell-cmdletarna. Om du vill visa de cmdletar som du registrerat kör du följande kommando i Kommandotolken i Windows PowerShell-fönstret:

Get-Help “Crm”  

Använda cmdleten för att hämta paket

Innan du kan använda cmdleten bör du se till att du har kopierat ditt paket till mappen PackageDeployer (i det här fallet [ExtractedLocation]\tools). Ett paket är en samling filer och mappar som skapas i projektmappen för Visual Studio (<Project> \Bin\Debug) när du skapar ett projekt i Visual Studio. Kopiera hela innehållet i mappen Project Debug till mappen PackageDeployer. Mer information om hur du skapar ett paket med hjälp av Visual Studio finns i Skapa paket för CRM Package Deployer.

  1. I PowerShell-fönstret, använd följande cmdlet för att returnera en lista över paket som är tillgängliga för import i den angivna mappen (i det här fallet c:\CRM\SDK\Tools\PackageDeployer):

    Get-CrmPackages –PackageDirectory [ExtractedLocation]\tools  
    
  2. Om du vill ha information om ett paket i en mapp kan du använda cmdleten Get-CrmPackages tillsammans med parametern –PackageName för att ange namnet på paketet i den mapp som innehåller paketdefinitionen.

    Get-CrmPackages –PackageDirectory [ExtractedLocation]\tools –PackageName SampleCRMPackage.dll  
    
    
  3. Paketets monteringsplats kan lagras i en variabel genom att anväda Get-CrmPackages cmdlet. Den kan sedan återanvändas i Import-CrmPackage cmdlet för att ange ett värde för parametern PackageDirectory. Till exempel kan du lagra information i ett eller flera paket som returneras från Get-CrmPackages cmdlet en variabel med namnet $MyPackages.

    $MyPackages = Get-CrmPackages –PackageDirectory [ExtractedLocation]\tools   
    

    För att visa alla paket.

    $MyPackages  
    

    För att endast visa tredje paketet.

    $MyPackages[2].PackageAssemblyLocation  
    

    Då kan du referera varje paket tilli matrisen från 0 till n. Till exemplet importerar den här cmdleten det första paketet som finns i $MyPackages.

    Import-CrmPackage -CrmConnection $CRMConn -PackageDirectory $MyPackages[0].PackageAssemblyLocation  
    

Använda cmdleten för att ansluta till Dynamics 365-instansen

  1. Ange dina autentiseringsuppgifter för att ansluta till din Dynamics 365 (online)- eller Dynamics 365 (on-premises)-instans. Om du kör följande kommando uppmanas du att ange ditt användarnamn och lösenord för att ansluta till Dynamics 365-instansen. De lagras då i variabeln $Cred och används senare för att ansluta till din Dynamics 365 Server.

    $Cred = Get-Credential  
    
  2. Använd följande kommando för att hämta en anslutning till Dynamics 365 (online)- eller Dynamics 365 (on-premises)-instansen. Vi lagrar anslutningsinformationen i variabeln $CRMConn:

    • Om du ansluter till Dynamics 365 (on-premises)-instansen:

      $CRMConn = Get-CrmConnection -ServerUrl http://<your_CRM_Server> -OrganizationName <your_Org_Name> -Credential $Cred  
      
    • Om du ansluter till Dynamics 365 (online)-servern:

      $CRMConn = Get-CrmConnection -DeploymentRegion NorthAmerica –OnlineType Office365 –OrganizationName <your_Org_Name> -Credential $Cred  
      

      Anteckning

      För DeploymentRegion är giltiga värden NorthAmerica, EMEA, APACSouthAmerica, Oceania, JPN och NorthAmerica2. Giltiga värden för parametern OnlineType är Office365 och LiveID.

  3. De angivna autentiseringsuppgifterna valideras när du kör kommandot i steg 2.

Använda cmdleten för att distribuera paket

Använd nu Dynamics 365-anslutningsinformationen som lagrats i $CRMConn-variabeln för att distribuera paket till Dynamics 365-instansen. Följande kommando distribuerar ett paket, tar isär paketet i mappen c:\UnpackedFiles och registrerar informationen i en loggfil i mappen c:\MyLogFiles.

Import-CrmPackage –CrmConnection $CRMConn –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer –PackageName SampleCRMPackage.dll –UnpackFilesDirectory c:\UnpackedFiles -LogWriteDirectory C:\MyLogFiles -Verbose  

Anteckning

  • Parametrarna CrmConnection, PackageDirectory och PackageName är obligatoriska.

  • I stället för att manuellt ange paketmappen kan du använda en variabel med parametern PackageDirectory. Mer information: Använda cmdleten för att hämta paket

  • För parametern PackageName måste du ange namnet på paketet som innehåller paketdefinitionen.

  • Du behöver inte ange UnpackFilesDirectory-parametern om ditt paket inte packar upp filerna under distributionen av paket. När du definierar ett paket i Visual Studio anger du om filerna ska packas upp med hjälp av parametern agentdesktopzipfile i filen ImportConfig.xml. Mer information: Skapa paket för CRM Package Deployer

  • Verbose-parametern är valfri och används för att visa en detaljerad logg över de aktiviteter som utförs under distributionsprocessen för paket.

  • Den valfria parametern RuntimePackageSettings kan användas tillsammans med följande parametrar:

    • Parametern LCID=localeID anger språk-ID, t.ex. 1033 för Engelska - USA eller 1036 för Franska - Frankrike från tillgängliga ID för nationella inställningar i paketet. Om inget anges används standardspråket.
    • Parametern SkipChecks=true/false bör endast användas när målmiljön inte innehåller några andra lösningar eller anpassningar. När värdet är true, kringgår lösningsimporten vissa säkerhetskontroller, vilket kan förbättra prestanda för import.
  • Den mapp som du anger när du använder parametern LogWriteDirectory måste redan finnas och användaren som kör cmdleten Import Import-CrmPackage måste ha skrivbehörighet till mappen. Dessutom krävs parametern -Verbose när du använder parametern LogWriteDirectory.

    Parametern LogWriteDirectory introducerades först med Dynamics 365 (online), version 9.0. Mer information: Utvecklarguide för Dynamics 365 Customer Engagement

Följande exempelkommando importerar ett paket som heter SampleCRMPackage och anger engelska - USA (1033) som språket för att importera paketet.

Import-CrmPackage –CrmConnection $CRMConn –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer –PackageName SampleCRMPackage.dll –UnpackFilesDirectory c:\UnpackedFiles –RuntimePackageSettings LCID=1033  

Få detaljerad hjälp med cmdletar

I PowerShell-fönstret, använd Get-Help-cmdleten med ett cmdlet-namn om du vill visa en detaljerad hjälp för cmdleten. Om du t.ex. vill få detaljerad hjälp för cmdleten Import-CrmPackage:

Get-Help Import-CrmPackage -full  

Om du vill visa direkthjälpen för cmdletar, se PowerShell-referens för Dynamics 365.

Felsökning av problem med paketdistribution med hjälp av loggfiler

Package Deployer-verktyget ger stöd för oggning om du vill få detaljerad information om fel som kan uppstå när någon loggar in på Microsoft Dynamics 365-instansen med hjälp av verktyget och distribuerar paket. Verktyget skapar som standard tre loggfiler som lagras på följande plats på datorn där du kör verktyget:\Users\<UserName> \AppData\Roaming\Microsoft\Microsoft Dynamics CRM Package Deployer\<Version>. Om du vill ange en annan mapp, använder du parametern LogWriteDirectory PowerShell cmdleten. Mer information: Använda cmdleten för att hämta paket

  • Login_ErrorLog.log: ger information om de problem som uppstod när du använde verktyget för att logga in på Dynamics 365-instansen. Om det uppstår problem vid inloggningen visas ett meddelande på verktygets inloggningsskärm med en länk till den här loggfilen. Meddelandet anger att ett fel uppstod vid bearbetningen av en inloggningsbegäran och användaren kan granska felloggen. Du kan klicka på länken i meddelandet för att visa loggfilen. Loggfilen skapas första gången du stöter på några inloggningsproblem i verktyget. Loggfilen används därefter för att logga information om inloggningsproblem när dessa uppstår.

  • PackageDeployer.log: innehåller detaljerad information om varje aktivitet i som utförts i verktyget under distributionen av paketen. Du kan visa loggfilen från verktyget genom att klicka på länken Visa loggfil längst ned på skärmen.

  • ComplexImportDetail.log: innehåller detaljerad information om importerade data i den senaste distributionen som gjordes med hjälp av verktyget. Varje gång du distribuerar ett paket med det här verktyget flyttas befintlig information från loggfilen till en fil med namnet ComplexImportDetail._old.log i samma katalog och filen ComplexImportDetail.log visar information om den senaste importen som gjordes hjälp av verktyget.

Metodtips för distribution av paket

Vid distribution av paket Dynamics 365 måste administratörerna göra följande:

  • Kräva att ett signerat paket används så att de kan spåra ett paket tillbaka till källan.

  • Testa paketet på en instans i en förproduktionsinstans (helst en spegelbild av produktionsinstansen) innan du kör det på en produktionsserver.

  • Säkerhetskopiera produktionsinstansen innan du distribuerar ett paket.

Se även

Skapa paket för CRM Package Deployer