由於微軟幾天前發佈了用於Azure函數的.NET Core 2.0,我試圖瞭解如何在VS2017中創建一個新的函數項目,以.NET Core爲目標。目標在Visual Studio 2017中使用Azure函數的.NET Core 2.0
我已經嘗試了很多配置,仍然以.NET 4.7結束。
有沒有人設法創建一個針對.NET Core的新函數?
謝謝。
由於微軟幾天前發佈了用於Azure函數的.NET Core 2.0,我試圖瞭解如何在VS2017中創建一個新的函數項目,以.NET Core爲目標。目標在Visual Studio 2017中使用Azure函數的.NET Core 2.0
我已經嘗試了很多配置,仍然以.NET 4.7結束。
有沒有人設法創建一個針對.NET Core的新函數?
謝謝。
現在,這是一個手動過程。您需要創建.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現在應該支持它,因爲法比奧被提及。
這受Microsoft.NET.Sdk.Functions包的1.0.5版支持。
在你Azure的項目功能,請執行以下操作:
Microsoft.NET.Sdk.Functions
包版本1.0.5Edit <projectname>.csproj
選項並修改TargetFramework
元素值netstandard2.0
這將生成.NET Standard 2.0程序集以及由Azure Functions工具創建的所有工件。
試圖創建一個默認的HTTP觸發器,由於請求對象中缺少「GetQueryNameValuePairs」而無法編譯。 –
你只是缺少對公開該擴展方法('Microsoft.AspNet.WebApi.Core')的必需WebApi包的引用。添加軟件包引用,你就完成了。 –
這樣做了,現在編譯器對所有的HttpRequest方法都不明確。將等待1.0.6 :-)或者RTM VS2017。謝謝。 –
截至今天,我已經能夠以「合理」直觀的方式將.Net Standard 2.0作爲目標,而無需編輯任何.csproj文件。
您需要合理的最新版本的Visual Studio。我使用的是Visual Studio Professional 15.5.3(儘管我猜這個社區會起作用)。
您需要安裝Azure開發工作負載。這將安裝稱爲Azure函數和Web Jobs工具的擴展。
到目前爲止是如此普通的香草。還有兩點對我來說根本不是直觀的,但最終很容易做到 - 當你知道怎麼做的時候很容易!
你需要確保的是,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
即使您已經這樣做了,Visual Studio對於創建以.net 2.0爲目標的Azure函數也有點奇怪。當您進入File/New Project時,可用項目類型列表中沒有任何更改,如果選擇Azure函數,則框架列表僅顯示.NET Framework *,不支持.NET標準,不支持.NET Core。
但如果此時你持之以恆,選擇Azure的功能,你再得到一個新的對話框,我從來沒有見過的,它允許您選擇Azure的功能V2預覽(.NET核心)。
現在,當我查看項目屬性時,事實證明它是針對.NET Standard 2.0的,而.NET Standard 2.0似乎包含Microsfot.NETCore.Platforms(1.1.0)。那麼這是.net核心2.0還是不是?不太確定,但它對於我的目的來說已經足夠好了,所以現在我們要去編碼。
乾杯!
有關Azure功能和Web作業工具所需版本15.0.31114.0的更多信息。 –
它不起作用。當我嘗試將.net core 2項目引用到我的Azure功能時,出現錯誤: 錯誤\t \t項目'X'目標'netcoreapp2.0'。它不能被以'.NETStandard,Version = v2.0'爲目標的項目引用。 –
這已經改變,因爲博客最初發布,這正與1.0.5支持。該帖子將會更新以儘快反映。 –