Netstandard peut convertir de NuGet System.Net.Http à la version GAC

voix
2

J'ai une bibliothèque de classes de base .NET qui construit un ensemble de NuGet au netstandard1.6. Je veux utiliser cette bibliothèque dans une fonction Azure. Mais je reçois cette erreur, lorsque je tente d'appeler une méthode dans la bibliothèque de classe avec la

using System.Net.Http;
public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log) 
{
   return MyClassLib.Methode(req);
}

error CS1503: Argument 1: cannot convert from 'System.Net.Http.HttpRequestMessage [D:\home\data\Functions\packages\nuget\System.Net.Http\4.1.0\ref\net46\System.Net.Http.dll]' to 'System.Net.Http.HttpRequestMessage [D:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Net.Http\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Net.Http.dll]'

Je gues que D: \ home \ data \ Fonctions \ packages \ NuGet \ System.Net.Http \ 4.1.0 \ ref \ net46 \ System.Net.Http.dll est la forme dll venir les dépendances: { « NETStandard .library : 1.6.0},

J'ai trouvé des problèmes similaires avec System.Net.Http: https://github.com/dotnet/corefx/issues/9846 Et je lis quelque chose:

Des exemples de paquets qui ne sont pas fixés à 1,0 « System.Net.Http »: « 4.1.0- * » https://docs.microsoft.com/en-us/dotnet/articles/core/tutorials/managing-package- versions de dépendance-

Dois - je revenir à netstandard 1.2 parce que la version System.Net.Http? Mais je ne peux pas soutenir net46 plus: https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md

Y at-il un décalage entre netstandard et net46?

Créé 15/10/2016 à 13:46
source utilisateur
Dans d'autres langues...                            


3 réponses

voix
1

Selon Azure fonction de la documentation , il semble que le cadre supporté seulement au moment est net46.

Créé 16/10/2016 à 00:27
source utilisateur

voix
1

Oui, je l'ai travail :) Ce que j'ai fait:

J'ai ajouté net46 comme cadre et déplacé « NETStandard.Library »: « 1.6.0 » uniquement en tant que dépendances pour netstandard1.3. Parce que la bibliothèque System.Net.Http qui est à l'intérieur du « NETStandard.Library ».

MyClassLib:

"frameworks": {
"netstandard1.3": {
  "imports": [ "netcoreapp1.0" ],
  "dependencies": {
    "NETStandard.Library": "1.6.0",
    "System.Xml.XmlSerializer": "4.0.11",
    "System.Xml.XmlDocument": "4.0.1",
    "System.Xml.XDocument": "4.0.11"
  }
},
"net46": {
  "frameworkAssemblies": {
    "System.Xml": "",
    "System.Xml.Linq": "",
    "System.Xml.Serialization": ""
  }
}

Ajouter ajouté « type »: « construire » dans mes projets de référence dépendu.

"MyClassLib.Xml": {
  "target": "project",
  "type": "build"
},

Ce serait bien si quelqu'un a écrit un tutoriel complet sur les meilleures pratiques pour la mise en place des bibliothèques de classes modernes.

Créé 16/10/2016 à 10:46
source utilisateur

voix
1

À l' heure actuelle, nous soutenons officiellement jusqu'à Netstandard 1.3. Le project.jsonfichier doit continuer à utiliser net46comme cadre et les paquets compatibles seront correctement résolus (comme je crois que vous avez trouvé). Ceci est question est plus liée à la norme .NET que les fonctions Azure, donc ce serait une bonne source d'information: https://docs.microsoft.com/en-us/dotnet/articles/standard/library

J'espère que cela t'aides!

Créé 18/10/2016 à 18:02
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more