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

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

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


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

前提条件

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

创建WPF项目和修改版本

  1. 创建一个普通的WPF应用解决方案,.net版本选择4.6.2。
    VS2017中创建使用 XRM 工具常用登录控件的WPF应用程序,适用CRM9.X版本-编程之家
    VS2017中创建使用 XRM 工具常用登录控件的WPF应用程序,适用CRM9.X版本-编程之家
  2. 选中project右键,添加新建项,选择添加一个Login Form。
    VS2017中创建使用 XRM 工具常用登录控件的WPF应用程序,适用CRM9.X版本-编程之家
  3. 因为版本的原因,会提示错误。
    VS2017中创建使用 XRM 工具常用登录控件的WPF应用程序,适用CRM9.X版本-编程之家
  4. 然后准备修改版本,右键Nuget管理包。选中WpfControls,点更新即可,因为其他包都依赖于它。
    VS2017中创建使用 XRM 工具常用登录控件的WPF应用程序,适用CRM9.X版本-编程之家
  5. 点接受
    VS2017中创建使用 XRM 工具常用登录控件的WPF应用程序,适用CRM9.X版本-编程之家
  6. 完了之后会发现packages.config文件里的版本号已经修改了。
    VS2017中创建使用 XRM 工具常用登录控件的WPF应用程序,适用CRM9.X版本-编程之家
  7. 这时回到新建的Login Form,窗体已经能正常显示了。
    VS2017中创建使用 XRM 工具常用登录控件的WPF应用程序,适用CRM9.X版本-编程之家

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

  1. 在主窗体上添加一个按钮
    VS2017中创建使用 XRM 工具常用登录控件的WPF应用程序,适用CRM9.X版本-编程之家
  2. 给按钮添加click事件
    VS2017中创建使用 XRM 工具常用登录控件的WPF应用程序,适用CRM9.X版本-编程之家
        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调试登录控件
    VS2017中创建使用 XRM 工具常用登录控件的WPF应用程序,适用CRM9.X版本-编程之家
  2. 成功连接最新CRM9.1的Online版本
    VS2017中创建使用 XRM 工具常用登录控件的WPF应用程序,适用CRM9.X版本-编程之家

总结

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