server - phuocle/Dynamics-Crm-DevKit GitHub Wiki

CLI Task: server

URL: https://github.com/phuocle/Dynamics-Crm-DevKit/wiki/cli/server

Overview

The server task deploys Plugin, Custom Action, Custom API, Workflow, and Data Provider assemblies (.dll or .nupkg) to Dynamics 365 / Dataverse.

Command Line Syntax

DynamicsCrm.DevKit.Cli.exe /conn:"YourConnectionString" /json:"DynamicsCrm.DevKit.Cli.json" /type:servers /profile:"ProfileName"

Parameters

Required Parameters

Parameter Description Example
/conn Dynamics 365 connection string "/conn:AuthType=Office365;Url=https://yourorg.crm.dynamics.com;[email protected];Password=password"
/json Path to DynamicsCrm.DevKit.Cli.json file "/json:DynamicsCrm.DevKit.Cli.json"
/type Task type (must be "servers") "/type:servers"
/profile Profile name from json file "/profile:DEBUG"

Optional Parameters

Parameter Description Example
/sdklogin Use SDK login dialog "/sdklogin:yes"
/onlyupdateassembly Only update assembly without registering steps "/onlyupdateassembly:yes"

JSON Configuration

Add a servers section in your DynamicsCrm.DevKit.Cli.json:

{
  "servers": [
    {
      "profile": "DEBUG",
      "solution": "YourSolution",
      "folder": "bin\\Debug",
      "includefiles": [
  "*.dll",
 "*.nupkg"
      ],
      "excludefiles": [
        "*.pdb",
        "Microsoft.*.dll"
      ]
    }
  ]
}

JSON Properties

Property Type Required Description
profile string Yes Profile identifier
solution string Yes Target solution unique name
folder string Yes Folder path containing assemblies (relative to json file)
includefiles array Yes File patterns to include (e.g., ["*.dll", "*.nupkg"])
excludefiles array Yes File patterns to exclude (e.g., ["*.pdb", "Microsoft.*.dll"])

Assembly Registration

The task automatically registers:

  • Plugins - Steps with Pre/Post images
  • Custom Actions - Custom workflow actions
  • Custom APIs - Custom APIs
  • Workflows - Custom workflow activities
  • Data Providers - Virtual entity data providers

Features

Auto-Detection

  • Automatically detects plugin types from [CrmPluginRegistration] attributes
  • Registers/updates plugin steps, images, and secure configurations
  • Handles plugin isolation modes (Sandbox/None)

Smart Deployment

  • Only updates changed assemblies
  • Preserves existing registrations
  • Updates secure configurations
  • Manages plugin step states (Active/Inactive)

Package Support

  • Supports .dll files
  • Supports .nupkg (NuGet packages) for plugin packages
  • Extracts and deploys assemblies from NuGet packages

Data Provider Support

  • Registers virtual entity data providers
  • Links data sources with CRUD operations
  • Validates data source existence

Examples

Example 1: Deploy Debug Build

DynamicsCrm.DevKit.Cli.exe ^
  /conn:"AuthType=Office365;Url=https://contoso.crm.dynamics.com;[email protected];Password=pass" ^
  /json:"DynamicsCrm.DevKit.Cli.json" ^
  /type:servers ^
  /profile:"DEBUG"

Example 2: Deploy with SDK Login

DynamicsCrm.DevKit.Cli.exe ^
  /sdklogin:"yes" ^
  /json:"DynamicsCrm.DevKit.Cli.json" ^
  /type:servers ^
  /profile:"DEBUG"

Example 3: Only Update Assembly (Fast Deploy)

DynamicsCrm.DevKit.Cli.exe ^
  /conn:"AuthType=Office365;Url=https://contoso.crm.dynamics.com;[email protected];Password=pass" ^
  /json:"DynamicsCrm.DevKit.Cli.json" ^
  /type:servers ^
  /profile:"DEBUG" ^
  /onlyupdateassembly:"yes"

Output

The task outputs:

  • ? REGISTER - New items registered
  • ? UPDATED - Existing items updated
  • ? ACTIVATED - Items activated
  • ?? DEACTIVATED - Items deactivated
  • ?? DO_NOTHING - No changes needed

Common Issues

Issue: Assembly not found

Solution: Check the folder path is correct and contains the assembly files

Issue: Solution not found

Solution: Ensure the solution unique name exists in target environment

Issue: Plugin step registration failed

Solution: Check [CrmPluginRegistration] attributes are correct and entity logical names exist

Related Tasks

See Also

⚠️ **GitHub.com Fallback** ⚠️