web-dev-qa-db-fra.com

Ciblez .NET Core 2.0 avec les fonctions Azure dans Visual Studio 2017

Depuis que Microsoft a publié .NET Core 2.0 pour Azure Functions il y a quelques jours, j'essaie de comprendre comment créer un nouveau projet Functions dans VS2017 ciblant .NET Core.

J'ai essayé de nombreuses configurations et j'ai quand même fini avec .NET 4.7.

Quelqu'un a-t-il réussi à créer une nouvelle fonction ciblant .NET Core?

Merci.

23
NOP-MOV

Ceci est pris en charge avec la version 1.0.5 du package Microsoft.NET.Sdk.Functions.

Dans votre projet Azure Functions, procédez comme suit:

  • Mettez à jour le Microsoft.NET.Sdk.Functions version du package à 1.0.5
  • Faites un clic droit sur votre projet, cliquez sur le Edit <projectname>.csproj option et modifiez la valeur de l'élément TargetFramework en netstandard2.0

Cela devrait générer des assemblys .NET Standard 2.0 avec tous les artefacts créés par l'outillage Azure Functions.

14
Fabio Cavalcante

À ce jour, j'ai pu cibler .Net Standard 2.0 de manière "raisonnablement" intuitive et sans modifier aucun fichier .csproj.

Vous avez besoin d'une version raisonnablement récente de Visual Studio. J'utilise Visual Studio Professional 15.5.3 (même si je suppose que cette communauté fonctionnerait).

Vous devez avoir installé la charge de travail de développement Azure. Cela installera une extension appelée Azure Functions and Web Jobs Tools.

Jusqu'ici tout simplement vanille. Il y avait 2 bits supplémentaires qui n'étaient pas du tout intuitifs pour moi mais qui ont fini par être très faciles à faire - faciles quand vous savez comment!

  1. Vous devez vous assurer que l'outil Azure Functions and Web Jobs est 15.0.31114.0 ou supérieur - c'est alors qu'ils ont ajouté la prise en charge de .net core 2.0 (voir https://github.com/Azure/Azure-Functions/blob /master/VS-AzureTools-ReleaseNotes.md ). Vous pouvez le mettre à jour en utilisant Outils/Extensions et mises à jour, ou voir https://marketplace.visualstudio.com/items?itemName=VisualStudioWebandAzureTools.AzureFunctionsandWebJobsTools

  2. Même lorsque vous avez fait cela, Visual Studio est un peu bizarre de vous laisser créer des fonctions Azure qui ciblent .net 2.0. Lorsque vous accédez à Fichier/Nouveau projet, rien n'a changé dans la liste des types de projets disponibles et si vous sélectionnez Azure Functions, la liste des cadres affiche simplement .NET Framework *, pas de .NET Standard, pas de .NET Core.
    enter image description here

Mais si à ce stade vous persévérez et sélectionnez Azure Functions, vous obtenez alors une nouvelle boîte de dialogue que je n'avais jamais vue auparavant, qui vous permet de sélectionner Azure Functions v2 Preview (.NET Core) . Azure Functions v2 Preview (.NET Core)

Maintenant, lorsque je regarde les propriétés du projet, il s'avère qu'il cible le .NET Standard 2.0, qui à son tour semble contenir Microsfot.NETCore.Platforms (1.1.0). Alors, est-ce .net core 2.0 ou non? Pas tout à fait sûr, mais c'est assez bon pour mes besoins, alors je vais maintenant rentrer dans le codage.

À votre santé!

enter image description here

14
ubienewbie

Pour l'instant, c'est un processus manuel. Vous devez créer la bibliothèque .NET Standard 2.0, ajouter function.json manuellement et exécutez-le avec les outils de base.

le package Microsoft.NET.Sdk.Functions ne prend pas encore en charge les bibliothèques de classes .NET Standard 2.0. Il s'agit du package qui identifie un projet en tant que projet Functions dans Visual Studio et génère function.json à partir des attributs lors de la génération.

Vous pouvez toujours créer des bibliothèques de classes C # qui ciblent .NET Standard 2.0, mais vous devez utiliser un function.json créé manuellement. Les modèles de bibliothèques de classes C # ne sont pas encore disponibles dans les outils de base, mais vous pouvez obtenir un exemple de GitHub.

de Développer des fonctions Azure sur n'importe quelle plate-forme

Mise à jour: la version 1.0.5 du SDK devrait désormais le prendre en charge, comme mentionné par Fabio.

5
Mikhail Shilkov