如何在.NET 6/7中使用Dynamics 365?求适配升级的正确方案与包
.NET 6/7对接Dynamics 365的正确方案
核心包确认:你找到的
Microsoft.PowerPlatform.Dataverse.Client正是官方推荐的适配.NET 6/7的包,它替代了.NET Framework时代的Microsoft.Xrm.Sdk等旧组件,专门为.NET Core/.NET 5+环境设计,用于对接Dynamics 365的底层数据平台Dataverse。迁移关键步骤:
- 替换依赖包:移除原.NET Framework项目中的
Microsoft.Xrm.Sdk、Microsoft.Crm.Sdk.Proxy等旧包,通过NuGet安装Microsoft.PowerPlatform.Dataverse.Client。 - 调整连接逻辑:旧代码里的
CrmServiceClient可直接替换为新包中的ServiceClient,连接字符串格式基本兼容,同时支持OAuth、Client Secret等现代认证方式。
示例代码:string connectionString = "AuthType=OAuth;Url=https://yourorg.crm.dynamics.com;ClientId=你的应用ID;ClientSecret=你的密钥;RedirectUri=app://58145B91-0C36-4500-8554-080854F2AC97"; using var serviceClient = new ServiceClient(connectionString); if (serviceClient.IsReady) { // 执行数据操作,比如查询账户 var query = new QueryExpression("account") { TopCount = 10 }; var results = await serviceClient.RetrieveMultipleAsync(query); } - 切换异步编程:新包提供了完整的异步API(如
RetrieveMultipleAsync、CreateAsync),建议替换同步方法,适配.NET 6/7的异步编程模型以提升性能。 - 更新认证方式:优先使用Client Secret或证书认证替代传统的用户名密码认证,符合云环境安全规范。
- 替换依赖包:移除原.NET Framework项目中的
注意事项:
- 若原项目包含Dynamics 365插件、自定义工作流活动,这类代码目前仍需基于.NET Framework编写(因为插件宿主环境暂不支持.NET 6/7);但客户端应用(控制台、Web API、桌面应用)可完全迁移到.NET 6/7使用新包。
- 若需调用Dataverse Web API,也可直接用
HttpClient实现,但Microsoft.PowerPlatform.Dataverse.Client封装了更多底层细节,开发效率更高。
内容的提问来源于stack exchange,提问作者Shahin Jabbarov
相关产品推荐
相关产品推荐

