En .NETCore, Pendant l' exécution de l'application dans Program.cs
fichier à CreateWebHostBuilder(args).Build().Run();
Je reçois l'exception
"System.MethodAccessException: 'Tentative par la méthode' Microsoft.Extensions.Logging.Configuration.LoggerProviderConfigurationFactory.GetConfiguration (System.Type) 'pour accéder à la méthode' Microsoft.Extensions.Logging.ProviderAliasUtilities.GetAlias (System.Type) 'a échoué."
dans la méthode
public class Program { public static void Main(string[] args) { CreateWebHostBuilder(args).Build().Run(); } public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>(); }
Comment résoudre ce problème. J'ai essayé en désinstallant et en installant Microsoft.AspNetCore mais cela ne sert à rien, veuillez voir la capture d'écran de mes dépendances
Sauf theMicrosoft.Extension.Logging toutes les versions des dépendances sont identiques. y a-t-il un problème cette différence de version. quelqu'un peut-il m'aider à résoudre ce problème.
3 Réponses :
Votre application utilise la version 2.2 de dot net core. La non-concordance de version dans votre dépendance de package est à l'origine de ce problème. Pouvez-vous réinstaller la version correcte à l'aide de la ligne de commande suivante dans la console du gestionnaire de package?
<PackageReference Include="Microsoft.Extensions.Logging" Version="2.2.0" />
si vous utilisez .net core cli, utilisez la commande suivante
dotnet add package Microsoft.Extensions.Logging --version 2.2.0
ou éditez directement la référence du package dans le fichier csproj, recherchez la ligne suivante et remplacez le numéro de version puis restaurez les packages.
Install-Package Microsoft.Extensions.Logging -Version 2.2.0
Lorsque j'essaye de faire installer Microsoft.Extensions.Logging -Version 2.2.0, cela donne le message d'erreur `` Retrait de package détecté: Microsoft.Extensions.Logging de 3.1.0 à 2.2.0. Référencez le package directement à partir du projet pour sélectionner une version différente. '
Quand je crée un projet ASP.NET 2.2 et ajoute le package Microsoft.EntityFrameworkCore 3.1, j'obtiens la même erreur.
La solution consiste à mettre à jour tous les packages Microsoft.Extensions.Logging. * Vers la version 3.1.
L'exception indique que le problème réside dans «Microsoft.Extensions.Logging.Configuration.LoggerProviderConfigurationFactory» (contenu dans l'assembly Microsoft.Extensions.Logging.Configuration).
Comme Microsoft le dit ici: https://docs.microsoft.com/en-us/dotnet/api/system.methodaccessexception?redirectedfrom=MSDN&view=net-5.0
L'exception MethodAccessException est levée dans des situations telles que les suivantes:
Fondamentalement, vous avez une référence à Microsoft.Extensions.Logging '3.1.6', mais une autre référence à Microsoft.Extensions.Configuration.Logging version '2.2.0', et cet assembly a sûrement été compilé avant Microsoft.Extensions.Logging '3.1 .6 '
Tout peut être résolu en modifiant / ajoutant une référence de package explicite dans votre projet:
Votre projet se construit-il avec succès?
Oui. Mon projet se construit avec succès
Pourquoi installez-vous
Microsoft.AspNetCore
au lieu deMicrosoft.AspNetCore.App
et pourquoi seule la version deMicrosoft.Extensions.Logging
est 3.1.0 qui devrait également être 2.2.0?