web-dev-qa-db-ja.com

Visual Studio 2017のAzure Functionsで.NET Core 2.0をターゲットにする

MicrosoftがAzure Functions用の.NET Core 2.0を数日前にリリースしたので、.NET CoreをターゲットとするVS2017で新しいFunctionsプロジェクトを作成する方法を理解しようとしています。

私は多くの構成を試しましたが、それでも.NET 4.7になりました。

誰かが.NET Coreをターゲットとする新しい関数を作成できましたか?

ありがとう。

23
NOP-MOV

これは、Microsoft.NET.Sdk.Functionsパッケージの1.0.5リリースでサポートされています。

Azure Functionsプロジェクトで、次の操作を行います。

  • Microsoft.NET.Sdk.Functionsパッケージのバージョンを1.0.5に更新します
  • プロジェクトを右クリックし、Edit <projectname>.csprojオプションをクリックして、TargetFramework要素の値をnetstandard2.0に変更します

これにより、Azure Functionsツールによって作成されたすべてのアーティファクトを含む.NET Standard 2.0アセンブリが生成されます。

14

今日、私は.Net Standard 2.0を「合理的に」直観的な方法で、.csprojファイルを編集することなくターゲットにできるようになりました。

Visual Studioのかなり最近のバージョンが必要です。私はVisual Studio Professional 15.5.3を使用しています(ただし、コミュニティは機能すると思います)。

Azure開発ワークロードをインストールする必要があります。これにより、Azure Functions and Web Jobs Toolsという拡張機能がインストールされます。

これまでのところ単純なバニラ。私にとって直感的ではなかった2つの追加のビットがありましたが、非常に簡単になりました-方法を知っていれば簡単です!

  1. Azure Functions and Web Jobs Toolが15.0.31114.0以上であることを確認する必要があります。これは、.netコア2.0のサポートを追加したときです( https://github.com/Azure/Azure-Functions/blobを参照)。 /master/VS-AzureTools-ReleaseNotes.md )。これは、Tools/Extensions and Updatesを使用して更新するか、または https://marketplace.visualstudio.com/items?itemName=VisualStudioWebandAzureTools.AzureFunctionsandWebJobsTools を参照してください。

  2. たとえそれを行ったとしても、Visual Studioは、.net 2.0をターゲットとするAzure関数を作成することを少し奇妙です。 File/New Projectに移動しても、使用可能なプロジェクトタイプのリストに変更はありません。AzureFunctionsを選択した場合、フレームワークのリストには.NET Framework *のみが表示され、.NET Standardも.NET Coreも表示されません。
    enter image description here

ただし、この時点で問題なくAzure Functionsを選択すると、今まで見たことのない新しいダイアログが表示され、Azure Functions v2 Preview(.NET Core)を選択できるようになります。 Azure Functions v2 Preview (.NET Core)

次に、プロジェクトのプロパティを見ると、.NET Standard 2.0を対象としていることがわかります。これには、Microsfot.NETCore.Platforms(1.1.0)が含まれているようです。それで、これは.netコア2.0ですか?確かではありませんが、私の目的には十分ですので、コーディングに取り掛かります。

乾杯!

enter image description here

14
ubienewbie

今のところ、それは手動プロセスです。 .NET Standard 2.0ライブラリを作成し、function.jsonを手動で追加して、コアツールで実行する必要があります。

パッケージMicrosoft.NET.Sdk.Functionsは、まだ.NET Standard 2.0クラスライブラリをサポートしていません。これは、プロジェクトをVisual StudioのFunctionsプロジェクトとして識別し、ビルド中に属性からfunction.jsonを生成するパッケージです。

.NET Standard 2.0をターゲットとするC#クラスライブラリを作成することはできますが、手動で作成したfunction.jsonを使用する必要があります。 C#クラスライブラリのテンプレートはコアツールではまだ利用できませんが、GitHubからサンプルを入手できます。

from 任意のプラットフォームでAzure関数を開発

更新:1.0.5バージョンのSDKは、Fabioによって言及されているように、これをサポートする必要があります。

5
Mikhail Shilkov