【问题标题】:Build Error with pre-compiled Azure Function Library使用预编译的 Azure 函数库生成错误
【发布时间】:2018-02-08 08:48:16
【问题描述】:

最近,我将使用 C# 脚本 (*.csx) 的 Azure 函数转换为使用 Visual Studio Studio Tools for Azure Functions 的预编译类库。它在 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,版本=2.1.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35”。该系统找不到指定的文件。

同样的错误也发生在我们的 CI 构建中。

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

【问题讨论】:

  • 是的,我也看到了。我们会进行调查并回复您。
  • @RayVega 您是否解决了将此问题纳入您的 CI 流程的问题?我遇到了同样的问题(使用 Appveyor)。
  • @MarcusW 是的,但不幸的是,新的 AF 项目没有。我最终将我的 AF 项目转换为一个普通的 ol' 类库,以便 dotnet build 工作(例如,删除属性 [BlobTrigger("input/{name}")],添加 function.json 等)。但是,您可能想尝试这个更详细的解决方法,了解如何将 msbuild 用于 AF 项目:codescribbles.com/…
  • @RayVega 好的,谢谢!我一定会试一试的。感谢您快速且非常有帮助的回复!

标签: c# .net visual-studio-2017 azure-functions dotnet-cli


【解决方案1】:

2018-01-08 更新

根据@theGRS https://stackoverflow.com/a/48156446/621827 的新回答,此问题已解决。

上一个答案

这是我找到的。

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

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

我的建议是现在使用 MSBuild。

【讨论】:

  • 确实,msbuild 是最好的解决方法。通过“dotnet build”使其工作需要在包中进行一些更改,我希望这会在以后发生。
  • @DavidEbbo 我如何跟踪这个问题?谢谢!
  • @MarcusW 我会要求打开一个问题并在这里回复你。
  • @MarcusW 我刚刚创建了这个问题来跟踪:github.com/Azure/azure-functions-vs-build-sdk/issues/108。我们希望在下个月左右完成这项工作。
  • @DavidEbbo 谢谢一堆!
【解决方案2】:

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

在你的 Nuget 包管理器中更新到这个包的最新版本,你应该能够再次运行 dotnet build

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-20
    • 2017-05-28
    • 1970-01-01
    相关资源
    最近更新 更多