2017-08-30 100 views
4

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

我想通过我们的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): 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)?还有别的吗?

+0

是的,我看到相同。我们会调查并回复你。 –

+0

谢谢@DavidEbbo –

+0

@RayVega您是否解决了将此问题纳入您的CI过程?我有同样的麻烦(使用Appveyor)。 –

回答

6

UPDATE 2018年1月8日

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

以前的答案

这里就是我发现。

dotnet msbuild使用Microsoft.NET.Sdk.Functions .NETStandard 1.5库,如果你看一下依赖于NuGet它不使用Microsoft.Azure.WebJobs

但是,如果你使用Visual Studio 2017年msbuild它将使用.NETFramework 4.6版,其中包括Microsoft.Azure.WebJobs图书馆。

我的建议是现在使用MSBuild。我已经写了一个tutorial关于如何做到这一点。

+2

的确,msbuild是最好的解决方法。通过'dotnet build'工作是需要对软件包进行一些更改的东西,我希望这会在稍后发生。 –

+0

@DavidEbbo我如何跟踪这个问题?谢谢! –

+0

@MarcusW我会要求打开一个问题,然后回到这里。 –

0

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

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