使用Azure Functions核心工具(2.0.1-beta.31)加载NuGet时出错

时间:2018-07-18 23:03:25

标签: azure-functions azure-functions-core-tools

Azure Functions Core Tools (2.0.1-beta.31) Function Runtime Version: 2.0.11888.0

我正在使用F#编写v1函数。作为部署的一部分,我使用Paket引入NuGets并将代码构建到预编译的程序集中。我已经工作了几个月了。

我认为,一旦我更新到2.0.1-beta.31,本地测试就会停止运行。

现在,当我使用func host start测试时,我看到了此错误的多个实例:

[7/18/18 9:14:32 PM] Could not load file or assembly 'Octokit, Version=0.27.0.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.
[7/18/18 9:14:32 PM] Could not load file or assembly 'FSharp.Data, Version=2.4.2.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.
[7/18/18 9:14:32 PM] Could not load file or assembly 'FSharp.Control.AsyncSeq, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.

我认为这与程序集绑定重定向有关,但现在我不这么认为,因为Octokit不(不应)具有任何相关的外部依赖关系。

我已经在Mac和Windows上进行了测试,并且在两个平台上都看到了相同的错误。

1 个答案:

答案 0 :(得分:0)

Azure Functions运行时有两个版本:

  • v1,它基于完整的.NET Framework构建,并且仅Windows(GA)
  • v2,它基于.NET Standard 2.1构建并且是跨平台的(预览版)

这些实际上是Function的两个单独的“分支”。因此,有两个版本的Azure Functions核心工具:

  • 1.x,可运行v1函数运行库
  • 2.x,可运行v2 Functions运行时

您已经安装了2.x核心工具版本,并试图在其上运行v1功能,这就是您遇到错误的原因。您需要还原到最新的1.x版本的Azure Functions核心工具。

关于:v1和v2的总体功能,v2是我们的工程重点。因此,我们建议用户考虑在v2中迁移或启动新项目。目前尚无计划弃用v1,如果我们打算弃用v1,则在v2成为通用版本(预计今年秋天某个时间)之后,v1仍将至少可用一年。