2017-08-30 102 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