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项目和修改版本
- 创建一个普通的WPF应用解决方案,.net版本选择4.6.2。
- 选中project右键,添加新建项,选择添加一个Login Form。
- 因为版本的原因,会提示错误。
- 然后准备修改版本,右键Nuget管理包。选中WpfControls,点更新即可,因为其他包都依赖于它。
- 点接受
- 完了之后会发现packages.config文件里的版本号已经修改了。
- 这时回到新建的Login Form,窗体已经能正常显示了。
添加按钮调用登录控件进行调试
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();});}}
总结
- 通过以上方法,利用CRM SDK Templates模板可以创建XRM工具登录控件,支持CRM9.X版本。
- 这种场景可以使用在:自己开发的基于WPF应用的CRM 工具,关联查看和修改Dynamics365的数据以及其他操作。