Azure功能错误:无法加载文件或程序集“Microsoft.Xrm.Sdk,Version = 7.0.0.0”?

时间:2018-02-28 02:46:39

标签: azure dynamics-crm azure-functions dynamics-crm-online

我正在做一个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)。

请帮忙。

1 个答案:

答案 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" } ]