Развертывание пакетов с использованием Dynamics CRM Package Deployer и Windows PowerShell

 

Опубликовано: Февраль 2017

Применимо к: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Microsoft Dynamics CRM Package Deployer позволяет администраторам развертывать пакеты в экземпляре Dynamics 365 (локальная версия) или Microsoft Dynamics 365 Online. "Пакет" может состоять из какого-либо или всех нижеперечисленных элементов.

  • Один или несколько файлов решения Dynamics 365.

  • Плоские файлы или экспортированные файлы данных из Средство миграции конфигурации. Сведения о Средство миграции конфигурации см. в разделе Управление данными конфигурации.

  • Пользовательский код, который может выполняться во время или после развертывания пакета в Microsoft Dynamics 365.

  • Содержимое HTML для пакета, которое может отображаться в начале или конце процесса развертывания пакета. Это удобно для предоставления описания решений и файлов, развертываемых в пакете.

Разработчики создают пакеты с помощью шаблона развертывания пакетов в Microsoft Visual Studio.Дополнительные сведения:MSDN. Создание пакетов для CRM Package Deployer

После создания пакета можно развернуть его, выполнив Программа развертывания пакетов для CRM или с помощью командлетов Windows PowerShell для средства.

System_CAPS_importantВажно

Прежде чем импортировать пакет в производственную организацию и запускать его там, протестируйте пакет в непроизводственном зеркальном образе производственной организации.

Всегда создайте резервную копию производственной организации перед развертыванием пакета.

Средство развертывания пакетов может обрабатывать только один пакет за раз. Однако он предоставляет пользователям возможность выбрать пакет для развертывания из нескольких пакетов, доступных в каталоге Средство развертывания пакетов. Некоторые экраны и действия в инструменте различаются в зависимости от определения пакета. Устанавливать Средство развертывания пакетов не требуется. Просто загрузите и запустите его.

  1. Получите пакет для развертывания. Пакет представляет собой коллекцию файлов и папок, созданных в папке проектов Visual Studio (<проект>\Bin\Debug) при создании проекта пакета в Visual Studio. Скопируйте следующие элементы из папки отладки проекта:

    • Папка <имя_пакета>. Эта папка содержит решения, конфигурацию импорта и содержимое для данного пакета.

    • <имя_пакета>.dll. Сборка, содержащая код для пакета. По умолчанию имя сборки совпадает с именем проекта Visual Studio.

    Дополнительные сведения о создании пакета с помощью Visual Studio см. в разделе MSDN. Создание пакета для средства развертывания пакетов Package Deployer.

    В целях этого раздела предположим, что папка и сборка из папки отладки проекта Visual Studio (<проект>\Bin\Debug) скопированы в папку c:\DeployPackage.

  2. Загрузите пакет SDK Microsoft Dynamics CRM. Затем выполните загруженный исполняемый файл для извлечения содержимого пакета.

  3. Перейдите к папке SDK\Tools\PackageDeployer и скопируйте папку пакета и сборку из папки c:\DeployPackage в папку SDK\Tools\PackageDeployer.

  4. После копирования файлов запустите средство, дважды щелкнув файл PackageDeployer.exe в папке SDK\Tools\PackageDeployer.

  5. Щелкните Продолжить на главном экране инструмента.

  6. На экране Подключение к Microsoft Dynamics 365 укажите сведения для проверки подлинности, чтобы подключиться к серверу Dynamics 365, на котором требуется развернуть пакет. Если у вас имеется несколько организаций, и необходимо выбрать организацию, в которой будет развернут пакет, установите флажок Всегда отображать список доступных организаций. Нажмите кнопку Вход.

  7. Если на сервере Dynamics 365 несколько организаций, выберите организацию Dynamics 365, к которой требуется подключиться.

  8. Выберите пакет для развертывания и нажмите кнопку Далее.

    Select your package in the Package Deployer Tool
  9. Следуйте инструкциям на последующих экранах, чтобы выполнить развертывание пакета.

    Экраны отображаются на основе определения пакета, выбранного для развертывания. Дополнительные сведения о комплексном развертывании пакетов, использующем Средство развертывания пакетов, см. в посвященном пакетам Unified Service Desk разделе Развертывание образов приложений Unified Service Desk на сервере CRM с помощью Package Deployer.

Системные администраторы и специалисты по настройке могут передавать параметры (например, код языка и региональных стандартов) в packagedeployer.exe из командной строки. Эти параметры можно настроить только при выполнении Средство развертывания пакетов из командной строки.

System_CAPS_noteПримечание

Эта функция впервые появилась в Обновление 0.1 Microsoft Dynamics CRM Online 2016.

Доступные параметры перечислены в этой таблице.

Параметр

Описание

Значение по умолчанию

RuntimePackageSettings

Указывает packagedeployer.exe, что надо принять параметры командной строки, такие как LCID и SkipChecks.

Нет данных

LCID=localeID

Указывает код языка (например, 1033 для английского (США) или 1036 для французского (Франция)) из доступных кодов языка в пакете. Если не указано, будет использоваться язык по умолчанию.

Использовать язык по умолчанию

SkipChecks=true/false

Используйте этот параметр, только если целевая среда не содержит никаких других решений или пользовательских настроек. Если задан равным true, при импорте решения не будут выполняться некоторые проверки безопасности, что может повысить производительность импорта.

Ложь

В следующем примере параметры указывают, что Программа развертывания пакетов для CRM должен пропускать некоторые проверки безопасности, и устанавливают в качестве языка импорта польский язык.

packagedeployer.exe /Settings:"SkipChecks=true|lcid=1045"
System_CAPS_noteПримечание

Используйте символ "|" (вертикальная черта) для разделения параметров, если packagedeployer.exe запускается из командной строки с несколькими параметрами.

Дополнительные сведения о параметрах и значениях, которые могут передаваться в packagedeployer.exe, см. в разделе MSDN. Создание пакетов для CRM Package Deployer.

Средство развертывания пакетов также предоставляет поддержку Windows PowerShell для развертывания пакетов.

Выполните следующие шаги для использования командлетов PowerShell для развертывания пакетов.

Необходимые условия

Регистрация командлетов

Использование командлета для извлечения пакетов

Использование командлета для подключения к экземпляру Dynamics 365

Использование командлета для развертывания пакетов

Получение подробной справки по командлетам

Здесь перечислены необходимые условия для использования командлетов PowerShell:

  • PowerShell 3.0 или выше необходим для развертывания пакета с использованием PowerShell. Для проверки вашей версии PowerShell запустите окно PowerShell, а затем запустите следующую команду: $Host.

  • Сформулируйте политику исполнения для запуска подписанных скриптов PowerShell. Для этого запустите окно PowerShell в роли администратора, а затем выполните следующую команду: Set-ExecutionPolicy -ExecutionPolicy AllSigned

Необходимо зарегистрировать командлеты Windows PowerShell для Средство развертывания пакетов, прежде чем можно будет использовать их. Регистрация командлетов

  1. Если вы этого еще не сделали, загрузите пакет SDK Dynamics 365 из Центр загрузки Майкрософт и запустите файл пакета для извлечения содержимого пакета. Предположим, пакет извлечен в папку c:\CRM на компьютере.Средство развертывания пакетов и другие необходимые файлы станут доступны в следующем расположении: c:\CRM\SDK\Tools\PackageDeployer.

  2. Запустите Windows PowerShell на компьютере с повышенными правами (от лица администратора).

  3. В ответ на запрос в окне Windows PowerShell измените каталог на папку Windows PowerShell в папке PackageDeployer. В данном случае:

    cd c:\CRM\SDK\Tools\PackageDeployer\PowerShell
    
  4. Запустите скрипт RegisterXRMTooling.ps1, чтобы зарегистрировать сборку Windows PowerShell для Package Deployer (dll), и установите оснастку Windows PowerShell для Средство развертывания пакетов. Для этого введите следующую команду и нажмите клавишу ВВОД.

    .\RegisterXRMTooling.ps1
    
  5. Добавьте оснастку Windows PowerShell для инструментов XRM. В результате будут зарегистрированы следующие командлеты: Get-CrmConnection и Get-CrmOrganizations.

    Add-PSSnapin Microsoft.Xrm.Tooling.Connector
    
  6. Добавьте оснастку Windows PowerShell для Package Deployer. В результате будут зарегистрированы следующие командлеты: Get-CrmPackages и Import-CrmPackage.

    Add-PSSnapin Microsoft.Xrm.Tooling.PackageDeployment
    

Теперь можно использовать эти командлеты Windows PowerShell. Чтобы перечислить зарегистрированные командлеты, выполните следующую команду в ответ на запрос в окне Windows PowerShell.

Get-Help “Crm”

Прежде чем использовать командлет, убедитесь, что вы копировали пакет в папку PackageDeployer (в данном случае: c:\CRM\SDK\Tools\PackageDeployer). Пакет представляет собой коллекцию файлов и папок, созданных в папке проектов Visual Studio (<проект>\Bin\Debug) при построении проекта в Visual Studio. Скопируйте все содержимое своего проекта отладка папку в папку PackageDeployer. Дополнительные сведения о создании пакета с помощью Visual Studio см. в разделе MSDN. Создание пакетов для CRM Package Deployer.

  1. В окне PowerShell выполните следующий командлет для возвращения списка пакетов, доступных для импорта в указанной папке (в данном случае — c:\CRM\SDK\Tools\PackageDeployer):

    Get-CrmPackages –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer
    
  2. Если необходима информация о пакете в папке, можно использовать командлет Get-CrmPackages вместе с параметром PackageName, чтобы указать имя сборки в папке, которая содержит определение пакета.

    Get-CrmPackages –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer –PackageName SampleCRMPackage.dll
    
    
  3. Расположение сборки пакета можно хранить в переменной с помощью командлет Get-CrmPackages. Затем его можно повторно использовать в командлете Import-CrmPackage для указания значения параметра PackageDirectory. Например, можно хранить сведения из одного или нескольких пакетов, возвращенных командлетом Get-CrmPackages, в переменной $MyPackages.

    $MyPackages = Get-CrmPackages –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer 
    

    Для отображения всех пакетов.

    $MyPackages
    

    Для отображения только третьего пакета.

    $MyPackages[2].PackageAssemblyLocation
    

    После этого можно определить ссылку на каждый пакет в массиве от 0 до N. Например,этот командлет импортирует первый пакет, найденный в $MyPackages.

    Import-CrmPackage -CrmConnection $CRMConn -PackageDirectory $MyPackages[0].PackageAssemblyLocation
    
    System_CAPS_noteПримечание

    Параметр PackageAssemblyLocation и возможность отображать расположение папки и имя пакета были введены в Обновление для Dynamics 365 (онлайн-версия и локальная версия), декабрь 2016 г..Дополнительные сведения:Пакет средств разработки Dynamics 365

  1. Укажите учетные данные для подключения к вашему экземпляру Microsoft Dynamics 365 Online или Dynamics 365 (локальная версия). При выполнении следующей команды система пришлет запрос на ввод имени пользователя и пароля для подключения к экземпляру Dynamics 365, и мы сохраним это в переменной $Cred, а затем используем для подключения к серверу Dynamics 365.

    $Cred = Get-Credential
    
  2. Используйте следующую команду для подключения к экземпляру Microsoft Dynamics 365 Online или Dynamics 365 (локальная версия). Мы сохраним сведения для подключения в переменной $CRMConn.

    • При подключении к экземпляру Dynamics 365 (локальная версия):

      $CRMConn = Get-CrmConnection -ServerUrl http://<your_CRM_Server> -OrganizationName <your_Org_Name> -Credential $Cred
      
    • При подключении к серверу Microsoft Dynamics 365 Online:

      $CRMConn = Get-CrmConnection -DeploymentRegion NorthAmerica –OnlineType Office365 –OrganizationName <your_Org_Name> -Credential $Cred
      
      System_CAPS_noteПримечание

      Для параметра DeploymentRegion допустимы значения NorthAmerica, EMEA, APACSouthAmerica, Oceania, JPN и NorthAmerica2. Для параметра OnlineType допустимы значения Office365 и LiveID.

  3. Предоставленные учетные данные проверяются при выполнении команды в шаге 2.

Далее используйте сведения для подключения к Dynamics 365 , хранящиеся в переменной $CRMConn, для развертывания пакетов в экземпляре Dynamics 365. Следующая команда разворачивает пакет, отменяет сборку пакета в папке \UnpackedFiles и записывает сведения в файл журнала в папке c:\MyLogFiles.

Import-CrmPackage –CrmConnection $CRMConn –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer –PackageName SampleCRMPackage.dll –UnpackFilesDirectory c:\UnpackedFiles -LogWriteDirectory C:\MyLogFiles -Verbose
System_CAPS_noteПримечание
  • Параметры CrmConnection, PackageDirectory и PackageName являются обязательными.

  • Вместо указания папки пакета вручную можно использовать переменную с параметром PackageDirectory.Дополнительные сведения:Использование командлета для извлечения пакетов

  • Для параметра PackageName необходимо указать имя сборки, которая содержит определение пакета.

  • Не нужно указать параметр UnpackFilesDirectory, если пакет не распаковывает файлы во время развертывания пакета. При определении пакета в Visual Studio нужно задать, требуется ли распаковывать файлы с использованием параметра agentdesktopzipfile в файле ImportConfig.xml.Дополнительные сведения:MSDN. Создание пакетов для CRM Package Deployer

  • Параметр Verbose не обязателен и используется для отображения подробного журнала действий, выполненных во время развертывания пакета.

  • Необязательный параметр RuntimePackageSettings можно использовать совместно со следующими параметрами:

    • Параметр LCID=localeID указывает код языка (например, 1033 для английского (США) или 1036 для французского (Франция)) из доступных кодов языка в пакете. Если не указано, будет использоваться язык по умолчанию.

    • &#160;

      Параметр SkipChecks=true/false должен использоваться, только если целевая среда не содержит никаких других решений или пользовательских настроек. Если задан равным true, при импорте решения не будут выполняться некоторые проверки безопасности, что может повысить производительность импорта.

  • Папка, которую вы указываете при использовании параметра LogWriteDirectory, должна уже существовать, и пользователь, выполняющий командлет Import-CrmPackage, должен иметься разрешение на запись в папку. Кроме того, при использовании параметра LogWriteDirectory требуется параметр -Verbose.

    Параметр LogWriteDirectory впервые появился в Обновление для Dynamics 365 (онлайн-версия и локальная версия), декабрь 2016 г..Дополнительные сведения:Пакет средств разработки Dynamics 365

Ниже показан пример команды, которая импортирует пакет с именем SampleCRMPackage и указывает английский-язык (США) (1033) в качестве языка для импорта пакета.

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

В окне PowerShell воспользуйтесь командлетом Get-Help с именем командлета для просмотра подробной справки по нему. Например, чтобы получить подробную справку по командлету Import-CrmPackage:

Get-Help Import-CrmPackage -full

Для просмотра интерактивной справки по командлетам см. раздел Справка по CRM PowerShell.

Средство развертывания пакетов обеспечивает поддержку журнала, в котором регистрируется подробная информация про ошибки, которые могут возникать при входе в экземпляр Microsoft Dynamics 365 с помощью средства и при развертывании пакетов. По умолчанию это средство создает три файла журнала, которые доступны в следующем расположении на компьютере, где оно запущено: c:\Users\<ИмяПользователя>\AppData\Roaming\Microsoft\Microsoft Dynamics CRM Package Deployer\<Версия>. Чтобы определить другую папку, используйте параметр -LogWriteDirectory командлета PowerShell.Дополнительные сведения:Использование командлета для извлечения пакетов

  • Login_ErrorLog.log: содержит информацию о проблемах, возникших при использовании инструмента для входа в экземпляр Dynamics 365. Если при входе возникла какая-либо проблема, на экране входа средства появляется сообщение со ссылкой на этот файл журнала. Сообщение заявляет, что при обработке запроса на вход произошла ошибка и пользователь может просмотреть журнал ошибок. Можно щелкнуть ссылку в сообщении, чтобы просмотреть этот файл журнала. Этот файл журнала создается при первом возникновении ошибки в средстве при входе в систему. В дальнейшем этот файл журнала используется для записи информации обо всех возникающих проблемах единого входа.

  • PackageDeployer.log: предоставляет подробную информацию о каждой из задач, выполняемых в средстве в ходе развертывания пакетов. Этот файл журнала можно просмотреть из средства, щелкнув ссылку Просмотр файла журнала в нижней части экрана.

  • ComplexImportDetail.log: предоставляет подробную информацию о данных, импортированных в ходе последнего развертывания с помощью средства. При каждом развертывании пакета с помощью средства существующие данные из файла журнала переносятся в файл ComplexImportDetail._old.log в том же каталоге, а в файл ComplexImportDetail.log помещается информация о последнем импорте, выполненном с помощью средства.

При развертывании пакетов администраторы Dynamics 365 должны:

  • Настаивать на сборке пакетов с подписью, чтобы можно было отследить источник сборки.

  • Проверить пакет на экспериментальном экземпляре (желательно, чтобы он был зеркальным образом рабочего экземпляра) перед выполнением на рабочем сервере.

  • Создать резервную копию рабочего экземпляра перед развертыванием пакета.

© Корпорация Майкрософт (Microsoft Corporation), 2017. Все права защищены. Авторские права

Добавления сообщества

ДОБАВИТЬ
Показ: