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

Ray*_*ega 4 .net c# dotnet-cli azure-functions visual-studio-2017

最近,我*.csx使用Visual Studio Studio for Azure Functions将一个使用C#script()的Azure函数转换为预编译的类库.它在Visual Studio 2017中成功构建(以及运行和调试).

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

C:\ Users\ray\.nuget\packages\microsoft.net.sdk.functions\1.0.2\build \netstandard1.0\Microsoft.NET.Sdk.Functions.Build.targets(31,5):错误:可能不加载文件或程序集'Microsoft.Azure.WebJobs.Host,Version = 2.1.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'.该系统找不到指定的文件.

我们的CI构建中也会出现相同的错误.

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

Ste*_*hen 7

更新2018-01-08

根据@theGRS /sf/answers/3370951251/的新答案,这已经解决了.

上一个答案

这是我发现的.

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

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

我的建议是暂时使用MSBuild.我写了一个关于如何做到这一点的教程.

  • 实际上,msbuild是最好的解决方法.通过'dotnet build'使其工作是需要在包中进行一些更改的东西,我希望这会在以后发生. (2认同)
  • @MarcusW我刚刚创建了这个问题来跟踪:https://github.com/Azure/azure-functions-vs-build-sdk/issues/108.我们希望在接下来的一个月左右完成这项工作. (2认同)