结合使用Dynamics CRM SDK和.NET Core

Tam*_*nar 6 microsoft-dynamics dynamics-crm .net-core dynamics-365

是否可以通过Dynamics SDK从.NET Core应用程序连接到Dynamics CRM 365?还是应该使用Web Api?

我读过这是可能的,但是当我从.NET Core类库引用SDK并尝试连接时,出现错误:

System.IO.FileNotFoundException: 'Could not load file or assembly 'System.Web.Services..
Run Code Online (Sandbox Code Playgroud)

似乎.NET Core不支持此DLL: 如何在Asp.net Core中使用soap Web服务?

我的代码是这样的:

 new Microsoft.Xrm.Tooling.Connector.CrmServiceClient(connectionString);
Run Code Online (Sandbox Code Playgroud)

我可以成功地使其从.NET Framework项目运行。

小智 8

您应该尝试新的 CDM SDK。它使用 .NET Core 并支持 Dynamics CRM 365。https : //www.nuget.org/packages/Microsoft.PowerPlatform.Dataverse.Client

只记得替换:

new Microsoft.Xrm.Tooling.Connector.CrmServiceClient(connectionString);
Run Code Online (Sandbox Code Playgroud)

有了这个:

new Microsoft.PowerPlatform.Dataverse.Client.ServiceClient(connectionString);
Run Code Online (Sandbox Code Playgroud)

确保选择Include prerelease包管理屏幕

  • 请注意,此选项已被弃用并已被 Microsoft.PowerPlatform.Dataverse.Client 取代 (5认同)

Ala*_*itz 7

使用.NET Core 运行时的应用程序与.NET Core 框架的应用程序之间存在区别。正如您所发现的那样,Dynamics 365 SDK当前不适用于.NET Core运行时,但是当.NET Core项目使用.NET Framework的目标.NET Framework运行时作为目标时,它可以与.NET Core框架一起工作。项目文件中的框架标记(TFM)设置。例如,对于.NET Core控制台应用程序,.csproj文件将如下所示(请注意TargetFramework):

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net472</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.CrmSdk.CoreAssemblies" Version="9.0.2.5" />
  </ItemGroup>

</Project>
Run Code Online (Sandbox Code Playgroud)

这样的应用程序将不会跨平台运行,只能在Windows上执行,但仍允许使用其他.NET Standard类库和框架,例如在.NET Framework运行时上执行时实现.NET Standard的ASP.NET Core。最终,如果将Dynamics 365 SDK更新为可以在.NET Core运行时上运行,则可以将项目文件的目标框架监视器值更改为.NET Core并成为跨平台。

  • 谢谢。我最终使用了 CRM REST OData Web Api。我已经按照这篇文章进行了设置 http://www.wrapcode.com/server-authentication-dynamics-crm/, https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/use -multi-tenant-server-server-authentication 和此代码示例 https://github.com/jlattimer/CrmWebApiCSharp/blob/master/CrmWebApiCSharpNoAdal/Program.cs (2认同)
  • @AlanMervitz 或其他人,这个答案在 2023 年的状态如何?请提供更新,因为从 .NET Core 3.0 及更高版本开始,不再可能面向完整的 .NET Framework 4.6.x+ (2认同)