.NET Core 2.0プロジェクトで Microsoft Dynamics 365 SDK Core Assemblies を使用しようとすると、実行時にusing Microsoft.Xrm.Sdk
だけで次のエラーが発生します。
TypeLoadException:アセンブリ 'System.ServiceModel、Version = 4.0.0.0、Culture = neutral、PublicKeyToken = b77a5c561934e089'からタイプ 'System.ServiceModel.Description.MetadataConversionError'をロードできませんでした。
コアアセンブリ(Microsoft.Xrm.Sdk.Client)は、〜net4x以外とは互換性がない可能性があります。
このエラーを回避する、またはターゲットSystem.ServiceModel
のコンテキストでMicrosoft.Xrm.Sdk
が必要とするWCF netcoreapp2.0
クラス/インターフェイスをロードする明白な方法はありますか? Microsoft.Windows.Compatibility を使用してギャップを埋めることはできますか? Microsoft.Windows.Compatibility pack documentation のように見えますWindows Communication Foundation(WCF)クラス/インターフェイスが「利用可能」 。互換パックを使用してSystem.ServiceModel.Description
をロードする方法を教えてください。
あなたが提供できるあらゆる助けをありがとう!
Githubでの複数の議論によると、私は可能なことをすべて試し、SDK、ServiceModelなどは.netコアと互換性がなく、決して互換性がないと言うことができます。しかし、私はこれを行うことができました:
重要な編集:さまざまな理由により、SDK 2016がLinuxの.netコアで確実に動作しないことがわかり、2011年に停止しました(nugetパッケージは_Microsoft.Xrm.Sdk.2011
_)。これは、1つの場合を除いて正常に機能します。_context.AddObject
_を実行し、エンティティIDなしを渡す場合。 SDKは、ネイティブWindowsライブラリのp/invokingに依存して、シーケンシャルUUIDを作成し、Linuxでクラッシュします。 .AddObject()
を呼び出す前にIDを設定することで、これを克服できます。