MicrosoftがAzure Functions用の.NET Core 2.0を数日前にリリースしたので、.NET CoreをターゲットとするVS2017で新しいFunctionsプロジェクトを作成する方法を理解しようとしています。
私は多くの構成を試しましたが、それでも.NET 4.7になりました。
誰かが.NET Coreをターゲットとする新しい関数を作成できましたか?
ありがとう。
これは、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アセンブリが生成されます。
今日、私は.Net Standard 2.0を「合理的に」直観的な方法で、.csprojファイルを編集することなくターゲットにできるようになりました。
Visual Studioのかなり最近のバージョンが必要です。私はVisual Studio Professional 15.5.3を使用しています(ただし、コミュニティは機能すると思います)。
Azure開発ワークロードをインストールする必要があります。これにより、Azure Functions and Web Jobs Toolsという拡張機能がインストールされます。
これまでのところ単純なバニラ。私にとって直感的ではなかった2つの追加のビットがありましたが、非常に簡単になりました-方法を知っていれば簡単です!
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 を参照してください。
たとえそれを行ったとしても、Visual Studioは、.net 2.0をターゲットとするAzure関数を作成することを少し奇妙です。 File/New Projectに移動しても、使用可能なプロジェクトタイプのリストに変更はありません。AzureFunctionsを選択した場合、フレームワークのリストには.NET Framework *のみが表示され、.NET Standardも.NET Coreも表示されません。
ただし、この時点で問題なくAzure Functionsを選択すると、今まで見たことのない新しいダイアログが表示され、Azure Functions v2 Preview(.NET Core)を選択できるようになります。
次に、プロジェクトのプロパティを見ると、.NET Standard 2.0を対象としていることがわかります。これには、Microsfot.NETCore.Platforms(1.1.0)が含まれているようです。それで、これは.netコア2.0ですか?確かではありませんが、私の目的には十分ですので、コーディングに取り掛かります。
乾杯!
今のところ、それは手動プロセスです。 .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からサンプルを入手できます。
更新:1.0.5バージョンのSDKは、Fabioによって言及されているように、これをサポートする必要があります。