2017-10-06 111 views
12

由於微軟幾天前發佈了用於Azure函數的.NET Core 2.0,我試圖瞭解如何在VS2017中創建一個新的函數項目,以.NET Core爲目標。目標在Visual Studio 2017中使用Azure函數的.NET Core 2.0

我已經嘗試了很多配置,仍然以.NET 4.7結束。

有沒有人設法創建一個針對.NET Core的新函數?

謝謝。

回答

5

現在,這是一個手動過程。您需要創建.NET Standard 2.0庫,手動添加function.json並使用核心工具運行它。

軟件包Microsoft.NET.Sdk.Functions尚不支持.NET標準2.0類庫。這是一個將項目標識爲Visual Studio的項目並在構建期間根據屬性生成function.json的包。

您仍然可以創作以.NET Standard 2.0爲目標的C#類庫,但您必須使用手動創作的function.json。 Core工具中尚未提供C#類庫的模板,但您可以從GitHub獲取示例。

Develop Azure Functions on any platform

更新:1.0.5版本SDK現在應該支持它,因爲法比奧被提及。

+0

這已經改變,因爲博客最初發布,這正與1.0.5支持。該帖子將會更新以儘快反映。 –

8

這受Microsoft.NET.Sdk.Functions包的1.0.5版支持。

在你Azure的項目功能,請執行以下操作:

  • 更新Microsoft.NET.Sdk.Functions包版本1.0.5
  • 右鍵單擊您的項目,點擊Edit <projectname>.csproj選項並修改TargetFramework元素值netstandard2.0

這將生成.NET Standard 2.0程序集以及由Azure Functions工具創建的所有工件。

+0

試圖創建一個默認的HTTP觸發器,由於請求對象中缺少「GetQueryNameValuePairs」而無法編譯。 –

+0

你只是缺少對公開該擴展方法('Microsoft.AspNet.WebApi.Core')的必需WebApi包的引用。添加軟件包引用,你就完成了。 –

+0

這樣做了,現在編譯器對所有的HttpRequest方法都不明確。將等待1.0.6 :-)或者RTM VS2017。謝謝。 –

6

截至今天,我已經能夠以「合理」直觀的方式將.Net Standard 2.0作爲目標,而無需編輯任何.csproj文件。

您需要合理的最新版本的Visual Studio。我使用的是Visual Studio Professional 15.5.3(儘管我猜這個社區會起作用)。

您需要安裝Azure開發工作負載。這將安裝稱爲Azure函數和Web Jobs工具的擴展。

到目前爲止是如此普通的香草。還有兩點對我來說根本不是直觀的,但最終很容易做到 - 當你知道怎麼做的時候很容易!

  1. 你需要確保的是,Azure的功能和Web作業工具是15.0.31114.0以上 - 這是當他們加入.NET 2.0的核心支持(見https://github.com/Azure/Azure-Functions/blob/master/VS-AzureTools-ReleaseNotes.md)。您可以使用工具/擴展和更新來更新它,或者參見https://marketplace.visualstudio.com/items?itemName=VisualStudioWebandAzureTools.AzureFunctionsandWebJobsTools

  2. 即使您已經這樣做了,Visual Studio對於創建以.net 2.0爲目標的Azure函數也有點奇怪。當您進入File/New Project時,可用項目類型列表中沒有任何更改,如果選擇Azure函數,則框架列表僅顯示.NET Framework *,不支持.NET標準,不支持.NET Core。
    enter image description here

但如果此時你持之以恆,選擇Azure的功能,你再得到一個新的對話框,我從來沒有見過的,它允許您選擇Azure的功能V2預覽(.NET核心)。 Azure Functions v2 Preview (.NET Core)

現在,當我查看項目屬性時,事實證明它是針對.NET Standard 2.0的,而.NET Standard 2.0似乎包含Microsfot.NETCore.Platforms(1.1.0)。那麼這是.net核心2.0還是不是?不太確定,但它對於我的目的來說已經足夠好了,所以現在我們要去編碼。

乾杯!

enter image description here

+0

有關Azure功能和Web作業工具所需版本15.0.31114.0的更多信息。 –

+1

它不起作用。當我嘗試將.net core 2項目引用到我的Azure功能時,出現錯誤: 錯誤\t \t項目'X'目標'netcoreapp2.0'。它不能被以'.NETStandard,Version = v2.0'爲目標的項目引用。 –

相關問題