我正在做一个azure函数并在本地测试它将向Dyanmcis CRM添加一些数据。当我运行函数时会抛出此错误:
无法加载文件或程序集“Microsoft.Xrm.Sdk,Version = 7.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35”或其中一个依赖项。系统找不到指定的文件。
请注意我的代码使用Microsoft.Xrm.Client(版本7),它有Microsoft.Xrm.Sdk(版本8.1.0.235)。
请帮忙。
答案 0 :(得分:2)
问题是由于缺少程序集重定向。通过将Microsoft.CrmSdk.CoreAssemblies
NuGet包添加到普通的.Net项目并查看添加到app.config
的生成的绑定重定向语句,您可以确切地看到需要哪个程序集重定向。
目前Azure功能不支持设置程序集重定向,因此必须在代码中完成。我使用此博客文章中的代码解决了这个问题:How to fix the assembly binding redirect problem in Azure Functions
使用该代码,local.settings.json
看起来像这样:
"Values": {
"AzureWebJobsStorage": "",
"AzureWebJobsDashboard": "",
"BindingRedirects": "[ { \"ShortName\": \"Microsoft.Xrm.Sdk\", \"RedirectToVersion\": \"8.0.0.0\", \"PublicKeyToken\": \"31bf3856ad364e35\" } ]"
}
并在Azure门户的应用程序设置中:
[ { "ShortName": "Microsoft.Xrm.Sdk", "RedirectToVersion": "8.0.0.0", "PublicKeyToken": "31bf3856ad364e35" } ]