为什么可以';my Azure函数是否查找Microsoft.Xrm.Sdk程序集依赖项?

为什么可以';my Azure函数是否查找Microsoft.Xrm.Sdk程序集依赖项?,azure,azure-functions,Azure,Azure Functions,我正在使用Azure函数,并希望编写可读取/写入Dynamics CRM Online的代码。根据Microsoft文档,我将CRM 2015 SDK DLL(全部)添加到function.json文件所在的bin文件夹中 这个函数编译得很好 运行该函数时,我遇到以下错误: 执行函数时出现异常:Functions.CrmTest1。mscorlib:调用的目标已引发异常。无法加载文件或程序集“Microsoft.Xrm.Sdk,版本=7.0.0.0,区域性=中性,PublicKeyToken=3

我正在使用Azure函数,并希望编写可读取/写入Dynamics CRM Online的代码。根据Microsoft文档,我将CRM 2015 SDK DLL(全部)添加到function.json文件所在的bin文件夹中

这个函数编译得很好

运行该函数时,我遇到以下错误:

执行函数时出现异常:Functions.CrmTest1。mscorlib:调用的目标已引发异常。无法加载文件或程序集“Microsoft.Xrm.Sdk,版本=7.0.0.0,区域性=中性,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。系统找不到指定的文件

下面是函数体(只是一个小测试示例):

#r“Microsoft.Xrm.Sdk.dll”
#r“Microsoft.Xrm.Client.dll”
使用制度;
使用Microsoft.Xrm.Sdk;
使用Microsoft.Xrm.Sdk.Query;
使用Microsoft.Xrm.Client;
使用Microsoft.Xrm.Client.Services;
公共静态无效运行(字符串输入、TraceWriter日志)
{
var connectionString=“AuthType=Office365;用户名=me@contoso.com;Password=MyPassword;Url=https://contoso.crm.dynamics.com";
CrmConnection connection=CrmConnection.Parse(connectionString);
使用(OrganizationService orgService=新的OrganizationService(连接))
{ 
var查询=新查询表达式(“账户”);
query.ColumnSet.AddColumns(“名称”);
var ec=orgService.RetrieveMultiple(查询);
log.Verbose(ec[0].GetAttributeValue(“名称”);
}
}
日志文件中没有指示找不到所需的程序集

让它工作起来,我错过了什么?我怎样才能找到所需但未找到的DLL?

Tim

今天上线的最新部署包含解决您遇到的问题的修复程序。请再试一次(如果您有运行的功能,您可能需要重新启动您的站点以获取最新版本),如果您有任何问题,请告诉我

再次感谢您的报道!我期待着看到您将与Functions和Dynamics CRM整合在一起。

Tim

今天上线的最新部署包含解决您遇到的问题的修复程序。请再试一次(如果您有运行的功能,您可能需要重新启动您的站点以获取最新版本),如果您有任何问题,请告诉我


再次感谢您的报道!我期待着看到您将如何使用Functions和Dynamics CRM。

Tim,您在bin文件夹中部署了哪些程序集?你能提供列表吗?我刚开始只复制了几个,但最后复制了CRM 2015 SDK\bin文件夹中的每个DLL(34个文件)。我仔细检查了一下,它们都在my function.json所在的\bin文件夹中。我知道,对于一个简单的Xrm应用程序,大多数DLL是不需要的,但是Azure函数日志没有提供任何关于缺少哪些DLL的指示,所以我只是将它们全部复制了起来。下一步我将尝试在函数中使用Nuget,也许我的运气会更好。我已经离开了周末,但我将使用CRM 2015 SDK运行一些测试,看看这里发生了什么。有一个问题可以解释这种行为,但最近已经解决。我会尽快发布更新。感谢您查看此Fabio。让这项功能发挥作用将是Dynamics CRM客户的一大胜利。与我一起工作的大多数CRM在线客户端最终都需要一次性和定期的数据清理、计划的操作等。Azure功能将非常适合这些快速、轻量级的系统更新,而不需要完整的WebJob、工作人员角色等。我今天能够重新处理此问题,并发现了一个小缺陷,影响间接私有依赖解决。我已经对此进行了修复,并将在部署后用答案进行更新。谢谢你的报道!Tim,你在bin文件夹中部署了哪些程序集?你能提供列表吗?我刚开始只复制了几个,但最后复制了CRM 2015 SDK\bin文件夹中的每个DLL(34个文件)。我仔细检查了一下,它们都在my function.json所在的\bin文件夹中。我知道,对于一个简单的Xrm应用程序,大多数DLL是不需要的,但是Azure函数日志没有提供任何关于缺少哪些DLL的指示,所以我只是将它们全部复制了起来。下一步我将尝试在函数中使用Nuget,也许我的运气会更好。我已经离开了周末,但我将使用CRM 2015 SDK运行一些测试,看看这里发生了什么。有一个问题可以解释这种行为,但最近已经解决。我会尽快发布更新。感谢您查看此Fabio。让这项功能发挥作用将是Dynamics CRM客户的一大胜利。与我一起工作的大多数CRM在线客户端最终都需要一次性和定期的数据清理、计划的操作等。Azure功能将非常适合这些快速、轻量级的系统更新,而不需要完整的WebJob、工作人员角色等。我今天能够重新处理此问题,并发现了一个小缺陷,影响间接私有依赖解决。我已经对此进行了修复,并将在部署后用答案进行更新。谢谢你的报道!成功!测试脚本(与我最初发布的脚本基本相同)可以工作——它返回结果查询中第一个CRM帐户的名称。非常感谢法比奥坚持到底。我现在脑子里充满了各种功能和CRM的可能性。我会把一些样品放在一起,很快就拿出来。微软也应该在博客上写下这一点,并确保CRM团队知道这一点。干杯成功!测试脚本(与我最初发布的脚本基本相同)可以工作——它返回结果查询中第一个CRM帐户的名称。非常感谢法比奥坚持到底。我现在脑子里充满了各种功能和CRM的可能性。我会准备一些样品
#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"));
    }
}