Dynamics 365 自动化发布工具Spkl介绍

2023-10-31

      本篇主要是为了后面讲述CI/CD时用到的工具做一个说明,先奉上spkl的github地址,没听说过的可以去查看下,挺不错的工具。

      我们主要用这个工具来部署WebResource, Plugin和Workflow Activities 以及后续的CI

      首先从nuget上下载工具包,

    下载完后会看到一个spkl的文件夹和一个spkl.json的配置文件

     在WebResource目录下建了两个js用于测试

     下一步就是去配置spkl.json,将文件映射到系统的解决方案下,这里贴出我的POC环境下的配置供参考, 关键的就是我注释的几个配置,

 "webresources": [
      {
        "profile": "default,debug",
        //相对于配置文件的目录的相对路径
        "root": "./Webresources/",
        //解决方案名称
        "solution": "DevopsWebResource",
        "files": [
          {
            "uniquename": "ava_/Contact.js",//系统中的webresource名称
            "file": "scripts/Contact.js",//文件路径
            "description": ""
          }
        ]
      },
      {
        "profile": "default,debug",
        "root": "./Webresources/",
        "solution": "DevopsWebResource",
        "files": [
          {
            "uniquename": "ava_/Test.js",
            "file": "scripts/Test.js",
            "description": ""
          }
        ]
      }
    ]

     以上都配置完后就可以去发布了,到spkl文件夹下双击webresource的批处理文件"deploy-webresources.bat"

     首次打开会让你输入系统的登录信息,输入URL后会弹登录框让你登录

     登录后就会根据配置文件自动发布了, 批处理脚本会判断JS是否有更改,有更改才会发布,没更改就直接跳过了

    当然也可以采用unattended的命令执行方式,以管理员身份运行cmd, cd到批处理文件所在目录,执行deploy-webresources.bat "连接字符串",这种unattended的方式也是后续CI中会用到的执行方式

url=https://xx.crm5.dynamics.com/;AuthType =ClientSecret;ClientId=ssxxxx28f-a166-3b54179c3a86;ClientSecret=xxxxxx2u~nmHXQco~;AppId =xxxxx79c3a86; RedirectUri = app://343fd800-95a9-4f75-9c59-0dde4990de54;

     以上WebResource的自动发布方式就介绍完了,下面再介绍下Plugin

     spkl的包下载后会有个CrmPluginRegistrationAttribute的说明文件,可以看下里面的内容,定义了Plugin注册所用到的内容,只需要在我们的Plugin头上注明当前Plugin的注册信息即可

    Plugin的相关配置文件很简单,指定你Assembly所在的文件目录即可

    "plugins": [
      {
        /*
            Required - assemblypath - Relative path (from this file or the path parameter above) to the assembies to deply
            Can be either plugins or workflow activities
            Create multiple entries for different profiles
            */
        "profile": "default,debug",
        "assemblypath": ".\\bin\\debug"
        /*
            Optional - defines the regex to use to detect a plugin or workflow activity when using a custom base class
            */
        //"classRegex": "((public( sealed)? class (?'class'[\\w]*)[\\W]*?)((?'plugin':[\\W]*?((IPlugin)|(PluginBase)|(Plugin)))|(?'wf':[\\W]*?CodeActivity)))"
      }
    ]

     

     然后就是执行Plugin的批处理命令

    最后去插件注册器看下,已成功注册上了,好处是不用你再打开插件注册器手工去注册Plugin和Step等了

    最后附上常用的几个注册说明供参考,具体可查看参数提示

    [CrmPluginRegistration(MessageNameEnum.Create, "account", StageEnum.PreValidation, ExecutionModeEnum.Synchronous, "", "Pre Create Account", 1, IsolationModeEnum.Sandbox)]
    [CrmPluginRegistration(MessageNameEnum.Create, "account", StageEnum.PostOperation, ExecutionModeEnum.Synchronous, "", "Post Create Account", 1, IsolationModeEnum.Sandbox)]
    [CrmPluginRegistration(MessageNameEnum.Update, "account", StageEnum.PreValidation, ExecutionModeEnum.Synchronous, "name", 
        "Pre Update Account", 1, IsolationModeEnum.Sandbox, Image1Attributes = "", Image1Name = "preimage", Image1Type = ImageTypeEnum.PreImage)]
    [CrmPluginRegistration(MessageNameEnum.Update, "account", StageEnum.PostOperation, ExecutionModeEnum.Synchronous, "name", "Post Update Account", 1, IsolationModeEnum.Sandbox)]

 

 

 

     

 

      

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Dynamics 365 自动化发布工具Spkl介绍 的相关文章

随机推荐

  • sqli-labs通关大全(更新至Less60)

    sqli labs通关 less1 less10 箭雨镜屋 CSDN博客 sqli labs通关 less11 less20 箭雨镜屋 CSDN博客 sqli labs通关 less21 less30 箭雨镜屋 CSDN博客 sqli la
  • config:fail,Error: 系统错误,错误码:63002,invalid signature

    经过半天的尝试 终于把这个解决了 本文章比较是和 前端用 hash分享下这个问题吧 看了好多文章都没解决了我的问题 直接上干货 1 首先出一张基本的问题图 2 针对上面这个图第2点内 hash 做个讲解 因为我前端用的 hash模式 一般网
  • 编码之Base64编码

    Base64编码 是一种基于 64 个可打印字符来表示二进制数据的方法 目前 Base64 已经成为网络上常见的传输 8 位二进制字节代码的编码方式之一 为什么会有 Base64 编码呢 因为有些网络传送渠道并不支持所有的字节 例如 传统的
  • 【Xilinx AX7103 MicroBalze学习笔记2】MicroBlaze 串口发送 Hello World 实验

    目录 实验介绍 硬件设计 Vivado部分 创建工程 搭建Block Design MicroBlaze部分 外围模块部分 时钟模块 Uart部分 管脚绑定 时钟约束 生成Bit流文件 软件设计 SDK部分 板级验证 总结 往期系列博客 实
  • stm32无人机-飞行力学原理

    惯性导航 是一种无源导航 不需要向外部辐射或接收信号源 就能自主进行确定自己在什么地方的一种导航方法 惯性导航主要由惯性器件计算实现 惯性器件包括陀螺仪和加速度计 一般来说 惯性器件与导航物体固连 加速度计测量物体运动的加速度 已知初始状态
  • Java分治算法经典案例之汉诺塔

    分治算法 思想 当我们求解某些问题时 由于这些问题要处理的数据相当多 或求解过程相当复杂 使得直接求解法在时间上相当长 或者根本无法直接求出 对于这类问题 我们往往先把它分解成几个子问题 找到求出这几个子问题的解法后 再找到合适的方法 把它
  • Unable to install “xxx“

    Unable to install xxx Xcode Could not inspect the application package macOS Version 11 4 Build 20F71 Xcode 12 5 1 18212
  • Ubuntu终端使用todesk命令

    Ubuntu终端使用todesk命令 todesk是一款免费的远程控制软件 支持Windows Linux Mac Android iOS等多种平台 可以实现跨设备的远程控制 文件传输 远程打印等功能 本文将介绍如何在Ubuntu终端使用t
  • matlab求图像杰卡德系数,Jaccard similarity coefficient for image segmentation

    This example shows how to segment an image into multiple regions The example then computes the Jaccard similarity coeffi
  • 免费的云服务器,大家推荐哪个呢?

    搭建一个云平台的成本还是很高的 但是就没有企业免费为公众提供服务的吗 其实免费的服务器是有的 各大平台都有 阿里云 腾讯云都有 只是受时间限制的 大多数是7天或者15天 但是某丰云却号称是永久免费的 其实它是有前提的 释放以后的数据也就永远
  • 第一课:使用C++实现图片去水印

    目录 1 功能概述 2 具体实现 2 1 导入OpenCV库和头文件 2 2 读入图像并显示 2 3 提取水印区域 2 4 重构去除水印后的图像 3 完整代码如下 4 实现效果 5 介绍几种PS去水印的方法 5 1 裁剪法 5 2 借图法
  • c1047: [编程入门]报数问题[报3退出]

    有n人围成一圈 顺序排号 从第1个人开始报数 从1到3报数 凡报到3的人退出圈子 问最后留下的是原来的第几号的那位 输入 初始人数n 输出 最后一人的初始编号 样例输入复制 3 样例输出复制 2 思路 约瑟夫环问题 需要考虑 1 成环 即当
  • 2023年软件测试常见面试题100%问必背全套教程

    随着数字化时代的到来 软件测试越来越受到重视 在未来的几年里 软件测试将继续成为信息技术领域中的热门职业之一 如果你是一名正在寻找或准备进入软件测试行业的人 那么这套常见面试题全套教程对你来说会非常有用 这套教程旨在帮助你了解2023年软件
  • Hdfs页面操作文件出现 Permission denied: user=dr.who, access=WRITE, inode=“/“:hadoop:supergroup:drwxr-xr问题解决

    错误描述 Permission denied user dr who access WRITE inode hadoop supergroup drwxr xr x 先开始一直纠结我是用hadoop用户登录操作的 为什么会是dr who d
  • eNSP之安全策略的配置

    命令行模式 FW firewall zone trust 进入trust区域 FW zone trust add int g1 0 0 把g1 0 0加入trust区域 undo add int g1 0 0 取消加入 FW firewal
  • C语言题目解析(一)

    C语言题目解析 1 打印 1 100之间的奇数 1 1 题目描述 1 2 解法思路 1 3 代码 1 4 运行结果 2 打印9 9乘法 诀表 2 1 题目描述 2 2 解题思路 2 3 解法代码 2 4 运行结果 3 打印素数 3 1 题目
  • 禁用cookie和私密浏览模式情况下localstorage需要注意的问题

    localstorage是html5新增的一个功能 用于本地存储 主要解决cookie存储量小的问题 官方建议每个网站最多存储5M大小 localstorage相关的函数 cookieEnabled 移动端在使用localstorage需要
  • TCP和UDP详解

    本篇文章主要是从运输层协议概述 UDP TCP 可靠传输的工作原理 TCP首部格式 TCP可靠传输的实现 TCP流量控制 TCP的拥塞控制 TCP的连接管理这几个方面进行解析 不对之处还望指出 喜欢的可以点赞关注一下 谢谢 一 运输层协议概
  • 写一段js代码,完成字段校验规则:字段的长度必须介于6-20位之间,必须包含大小写字母和数字。...

    var regex new RegExp a z A Z 0 9 a zA Z0 9 6 20 if regex test fieldValue 校验通过 else 校验不通过
  • Dynamics 365 自动化发布工具Spkl介绍

    本篇主要是为了后面讲述CI CD时用到的工具做一个说明 先奉上spkl的github地址 没听说过的可以去查看下 挺不错的工具 我们主要用这个工具来部署WebResource Plugin和Workflow Activities 以及后续的