使用预编译的 Azure 函数库构建错误

Build Error with pre-compiled Azure Function Library

最近,我使用 Visual Studio Studio Tools for Azure Functions 将使用 C# 脚本 (*.csx) 的 Azure 函数转换为预编译的 class 库。它在 Visual Studio 2017 年成功构建(以及 运行 宁和调试)。

我想通过我们的 CI 过程构建这个 AF 库。但是,当我在本地 运行 命令 dotnet build 时,它失败并出现以下错误:

C:\Users\ray\.nuget\packages\microsoft.net.sdk.functions.0.2\build\netstandard1.0\Microsoft.NET.Sdk.Functions.Build.targets(31,5): error : Could not load file or assembly 'Microsoft.Azure.WebJobs.Host, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. The system cannot find the file specified.

同样的错误也出现在我们的CI构建中。

不确定为什么会出现此错误以及如何解决它。它是 dotnet CLI 的版本吗(我使用的是 v1.1)?是不是其他的?

更新 2018-01-08

根据@theGRS 的新回答,这个问题已经解决了。

上一个答案

这是我的发现。

dotnet msbuild 使用 Microsoft.NET.Sdk.Functions .NETStandard 1.5 库,如果您查看 NuGet 上的依赖项,它不会使用 Microsoft.Azure.WebJobs

但是如果您使用 Visual Studio 2017 msbuild 它将使用 .NETFramework 4.6 版本的库,其中包括 Microsoft.Azure.WebJobs.

我的建议是暂时使用 MSBuild。

我在 运行 宁 dotnet build 时也遇到了同样的问题,但在将 Microsoft.NET.Sdk.Functions 从 1.0.2 更新到 1.0.7 后不再有这个问题。

在您的 Nuget 包管理器中更新到此包的最新版本,您应该可以再次 运行 dotnet build