【发布时间】:2016-04-08 16:29:54
【问题描述】:
我正在使用 Azure Functions,并且想要编写读取/写入 Dynamics CRM Online 的代码。根据 Microsoft 的文档,我将 CRM 2015 SDK DLL(全部)添加到了 function.json 文件所在的 bin 文件夹中。
函数编译正常。
运行该函数时出现此错误:
执行函数时出现异常:Functions.CrmTest1。 mscorlib:调用的目标已引发异常。无法加载文件或程序集 'Microsoft.Xrm.Sdk, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 或其依赖项之一。系统找不到指定的文件。
这是函数体(只是一个小测试样本):
#r "Microsoft.Xrm.Sdk.dll"
#r "Microsoft.Xrm.Client.dll"
using System;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Query;
using Microsoft.Xrm.Client;
using Microsoft.Xrm.Client.Services;
public static void Run(string input, TraceWriter log)
{
var connectionString = "AuthType=Office365;Username=me@contoso.com; Password=MyPassword;Url=https://contoso.crm.dynamics.com";
CrmConnection connection = CrmConnection.Parse (connectionString);
using ( OrganizationService orgService = new OrganizationService(connection))
{
var query = new QueryExpression("account");
query.ColumnSet.AddColumns("name");
var ec = orgService.RetrieveMultiple(query);
log.Verbose(ec[0].GetAttributeValue<string>("name"));
}
}
日志文件中没有指示找不到所需的程序集。
让这个工作我错过了什么?如何找出需要但没有找到的 DLL?
【问题讨论】:
-
Tim,您将哪些程序集部署到 bin 文件夹中?你能提供清单吗?
-
我从几个开始,但最终复制到了 CRM 2015 SDK \bin 文件夹(34 个文件)中的每个 DLL。我仔细检查了一下,它们都在我的 function.json 所在的 \bin 文件夹中。我知道一个简单的 Xrm 应用程序不需要大多数 DLL,但是 Azure 函数日志没有提供任何关于缺少哪些 DLL 的指示,所以我只是将它们全部复制了。接下来我将尝试将 Nuget 与该函数一起使用,也许我会用这种方法获得更好的运气。
-
我周末离开了,但我将使用 CRM 2015 SDK 运行一些测试,看看这里发生了什么。有一个问题可以解释这种行为,但最近已得到解决。我会尽快发布更新。
-
感谢您查看此 Fabio。让它发挥作用对于 Dynamics CRM 客户来说将是一个巨大的胜利。大多数与我合作的 CRM Online 客户最终都需要一次性和重复的数据清理、计划操作等。Azure Functions 非常适合这些不需要完整 WebJob 的快速、轻量级系统更新,工人角色等
-
我今天能够重现这个问题,并发现了一个小缺陷,不幸的是,它影响了间接私有依赖解决方案。我对此进行了修复,并在部署后更新答案。感谢您的报告!
标签: azure azure-functions