更新管道时,Azure函数中缺少dll错误

时间:2017-02-21 09:36:45

标签: azure azure-functions

我有一个Azure函数,当我将blob复制到容器中时会触发该函数。该函数成功将blob复制到子文件夹中进行处理,但我想更改管道调度以触发管道运行。但是,当我尝试在代码中更改管道计划时,我收到以下错误:

无法加载文件或程序集' Microsoft.Threading.Tasks,Version = 1.0.12.0,Culture = neutral,...或其中一个依赖项。系统找不到指定的文件。

我已经浏览了nuget软件包列表,删除了那些没有被使用的软件包,并确保我使用的是最新版本。我还在我的csx文件中评论了不必要的使用,但我还是得到了错误。如果我注释掉管道更新调用,则错误消失,函数运行到最后。

我的project.json文件看起来像这样(不是我已经包含注释掉的软件包以显示我之前尝试过的其他软件包):



{
  "frameworks": {
    "net46": {
      "dependencies": {
        ////"Hyak.Common": "1.1.0",
        "Microsoft.Azure.Common": "2.1.0",
        "Microsoft.Azure.Common.Dependencies": "1.0.0",
        "Microsoft.Azure.Management.DataFactories": "4.11.0",
        ////"Microsoft.Bcl": "1.1.10",
        ////"Microsoft.Bcl.Async": "1.0.168",
        ////"Microsoft.Bcl.Build": "1.0.21",
        "Microsoft.IdentityModel.Clients.ActiveDirectory": "3.13.8"
        ////"Microsoft.Net.Http": "2.2.29"
      }
    }
  }
}




最后,在csx文件中,我的用法如下(再次包括注释掉的行)



#r "System.Runtime"
#r "System.Threading.Tasks"
#r "Microsoft.WindowsAzure.Storage"

using System;
using System.Net;
using System.Threading.Tasks;
using System.Configuration;
//using Newtonsoft.Json;
using Microsoft.Azure;
//using Microsoft.Azure.Common;
using Microsoft.Azure.Management.DataFactories;
using Microsoft.Azure.Management.DataFactories.Models;
using Microsoft.IdentityModel.Clients.ActiveDirectory;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Blob; 




更新管道的代码如下:

client.Pipelines.CreateOrUpdate(resourceGroupName, dataFactoryName, new PipelineCreateOrUpdateParameters()
    {
        Pipeline = pl.Pipeline
    });

    log.Info($"Pipeline rescheduled for {slice}");

如果我将其作为控制台应用程序/ Web应用程序(包括多个引用,包括Microsoft.Threading.Tasks)运行,则管道更新可以正常工作,但相同的代码无法在我的Azure功能中运行。

有谁知道我可能缺少的nuget包/版本或引用?

1 个答案:

答案 0 :(得分:1)

事实证明,这个问题是由引用旧版.Net(即4.5而不是4.6)的project.lock.json文件引起的。将其更新为4.6解决了问题。

为完整起见,project.lock.json文件现在如下所示:



{
  "locked": false,
  "version": 2,
  "targets": {
    ".NETFramework,Version=v4.6": {}
  },
  "libraries": {},
  "projectFileDependencyGroups": {
    "": [],
    ".NETFramework,Version=v4.6": []
  }
}