VS2017中创建使用 XRM 工具常用登录控件的WPF应用程序,适用CRM9.X版本

  • 前提条件
  • 创建WPF项目和修改版本
  • 添加按钮调用登录控件进行调试
  • 总结

微软dynamics官网之前有个CRM SDK Templates的模板,使用这个模板可以创建带有XRM工具常用登陆控件的WPF应用程序,但是在该模板已经很久没有更新了。那么如何在VS2017中创建支持CRM9.X版本的登录控件呢?请往下看。

前提条件

下载上图中的CRMSDKTemplates.vsix文件,点击安装,默认它会提示你VS2017可能会不兼容,不管它,安装即可。
安装完后打开VS2017出现下面的选项即成功了。但是不要新建这样的一个项目,因为会使用.net 4.5.2,CRM的SDK版本还是7。不是我们想要的结果。我尝试过了,连接CRM8.X的OP版本是没有问题的,但是CRM9.X的online版本和OP版本就会报错。

创建WPF项目和修改版本

  1. 创建一个普通的WPF应用解决方案,.net版本选择4.6.2。

  2. 选中project右键,添加新建项,选择添加一个Login Form。
  3. 因为版本的原因,会提示错误。
  4. 然后准备修改版本,右键Nuget管理包。选中WpfControls,点更新即可,因为其他包都依赖于它。
  5. 点接受
  6. 完了之后会发现packages.config文件里的版本号已经修改了。
  7. 这时回到新建的Login Form,窗体已经能正常显示了。

添加按钮调用登录控件进行调试

  1. 在主窗体上添加一个按钮
  2. 给按钮添加click事件
        private void Button_Click(object sender, RoutedEventArgs e){// Establish the Login control.  CRMLoginForm1 ctrl = new CRMLoginForm1();// Wire event to login response.   ctrl.ConnectionToCrmCompleted += ctrl_ConnectionToCrmCompleted;// Show the login control.   ctrl.ShowDialog();// Handle the returned CRM connection object.  // On successful connection, display the CRM version and connected org name   if (ctrl.CrmConnectionMgr != null && ctrl.CrmConnectionMgr.CrmSvc != null && ctrl.CrmConnectionMgr.CrmSvc.IsReady){MessageBox.Show("Connected to CRM! Version: " + ctrl.CrmConnectionMgr.CrmSvc.ConnectedOrgVersion.ToString() +" Org: " + ctrl.CrmConnectionMgr.CrmSvc.ConnectedOrgUniqueName, "Connection Status");// Perform your actions here  }else{MessageBox.Show("Cannot connect; try again!", "Connection Status");}}private void ctrl_ConnectionToCrmCompleted(object sender, EventArgs e){if (sender is CRMLoginForm1){this.Dispatcher.Invoke(() =>{((CRMLoginForm1)sender).Close();});}}
  1. 按F5调试登录控件
  2. 成功连接最新CRM9.1的Online版本

总结

  1. 通过以上方法,利用CRM SDK Templates模板可以创建XRM工具登录控件,支持CRM9.X版本。
  2. 这种场景可以使用在:自己开发的基于WPF应用的CRM 工具,关联查看和修改Dynamics365的数据以及其他操作。

VS2017中创建使用 XRM 工具常用登录控件的WPF应用程序,适用CRM9.X版本相关推荐

  1. WPF中创建水晶动画效果的treeview控件

    软件开发中常常会用到treeview之类的导航菜单,如何使我们的菜单更具有视觉冲击力和动感呢,wpf可以帮我们轻易实现,下面我将使用blend来创建一个treeview动画效果资源. 首先我们在ble ...

  2. SilverLight学习笔记--如何在xaml文件中操作用户在后台代码定义的类(2)--示例篇:创建一个登录控件(原创)(转载本文请注明出处)...

    本文将示例如何运用前篇所写知识来建立一个用户自定义的登录控件.此控件界面非常简单,主要涉及的知识点是:   如何创建用户控件(包括对此控件的自定义事件和属性的编写,此处我们将创建一个名为LoginBo ...

  3. Arcgis中创建自定义脚本工具

    前言 虽然说ArcGis中已经自带了大量的工具,但面对某些特殊应用场景时还是无法满足,这时就可以考虑下创建自定义工具.开发人员将自己的逻辑封装为一个工具,直接提供给其他电脑上安装ArcGIS的人员使用 ...

  4. JTable是Swing编程中很常用的控件

    JTable是Swing编程中很常用的控件,这里总结了一些常用方法以备查阅. 一.创建表格控件的各种方式: 1) 调用无参构造函数. JTable table = new JTable(); 2) 以 ...

  5. QT 基础知识一(QT安装、创建项目、常用窗口控件使用、信号与槽机制讲解)

    QT概念 Qt:Qt是一个跨平台的C++框架(C++库),Qt除了支持界面设计(GUI编程),还封装了与网络编程.多线程.数据库连接.视频音频等相关的功能. ctrl 撤销(返回上一步) 市面常见的G ...

  6. DEA中创建父子工程与maven打包Springboot聚合工程报错程序包不存在

    DEA中创建父子工程与maven打包Springboot聚合工程报错程序包不存在 问题描述 springboot 项目打包(package)或安装到仓库(install)的时候报错:程序包com.fu ...

  7. opic4:Qt入门之常用qt控件认知之Button系列

    opic4:Qt入门之常用qt控件认知之Button系列 2013-06-27 18:21:54 标签:QAbstractButton QPushButton QRadioButton 原创作品,允许 ...

  8. Android开发 入门篇(二) - 常用UI控件

    文章目录 控件 Button TextView EditText ImageView ProgressBar AlertDialog ProgressDialog 布局 LenearLayout an ...

  9. QT5——模版库、工具类及控件

    文章目录 qt模版库 字符串类 操作字符串 查询字符串数据 字符串的转换 容器类 QList类.QLinkedList类和QVector类 QList类 QLinkedList类 QVector类 J ...

最新文章

  1. http和ftp下载的区别
  2. Maven添加本地Jar包方案1
  3. Monte Carlo仿真方法的基本思想及其特点
  4. C++ Primer 5th笔记(chap 19 特殊工具与技术)嵌套类
  5. Visual Studio的导入和导出设置
  6. 在linux命令下导出导入.sql文件的方法
  7. ARM交叉编译工具arm-linux-gcc安装
  8. 金山云服务器内网带宽,性能提升40%!第三代金山云服务器全面覆盖不同企业计算力需求...
  9. linux dlopen 源码,采用dlopen、dlsym、dlclose加载动态链接库
  10. css 的z-index研究
  11. 凸函数优化问题的相关讨论
  12. ssl证书申请,springboot部署https
  13. pip安装:Cannot uninstall ''. It is a distutils installed project and thus we cannot accurately....解决办法
  14. MATLAB绘制地形图和等高线图
  15. 揭示模式(Revealing Module)
  16. 输入一个QQ邮箱或者网易邮箱,判断其格式是否正确 要求:长度不能超过15,@前面不能用字母 正确格式2156636@qq.com
  17. 最近阅读书目及一点感想
  18. 【Win8自带微软输入法删除图解】
  19. windows cmd 中无法粘贴内容
  20. excle中数字太大,显示不全

热门文章

  1. 中国56个民族拼音表
  2. yana--Flutter一些学习
  3. 非功能性需求都包括哪些方面?
  4. 你的小米手机升级MIUI11后,电池掉电很快?那是这些设置没关掉吧
  5. db2和相关驱动的下载
  6. css实现简单的电影院选座功能
  7. mysql8.0压缩包安装
  8. 【ANSYS】Notepad++:一款好用的APDL语法编辑器
  9. 用链接法实现散列表构造和查找
  10. 小暑将至,这组小暑海报送给你们