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

时间:2017-08-30 14:59:57

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

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

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

  

C:\用户\射线\ .nuget \包\ microsoft.net.sdk.functions \ 1.0.2 \构建\ 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)?是别的吗?

2 个答案:

答案 0 :(得分:7)

更新2018-01-08

根据@theGRS https://stackoverflow.com/a/48156446/621827的新答案,这已得到解决。

上一个答案

这是我发现的。

query = "select j from Part p, Job j join p.partNumbers numbers where p.id = j.part.id and numbers LIKE CONCAT('%',:partNumber,'%') and p.forRepair = true"; jobs = entityManager.createQuery( query, Job.class ) .setParameter( "partNumber", searchValue ) .getResultList(); 使用dotnet msbuild库,如果您查看NuGet上的依赖项,则不会使用Microsoft.NET.Sdk.Functions .NETStandard 1.5

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

我的建议是暂时使用MSBuild。我写了tutorial如何做到这一点。

答案 1 :(得分:1)

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

在您的Nuget包管理员更新到此软件包的最新版本,您应该能够再次运行dotnet build