J'ai une application principale .net comme console et j'essaie d'obtenir des valeurs d'Azure Db. Ce code fonctionne parfaitement sur .NET Framework (standard) et je reçois toujours mes données mais je dois travailler avec .NET Core. En bref, j'ai une méthode qui GetConfig d'une autre (.dll) et à chaque fois que j'obtiens une exception:
public ITenantConfigurationProvider CreateTenantConfigurationProvider(ITenantClient client, string tenantId) { return client.GetConfigAsync(tenantId).Result; }
Je sais que .NET Core a System.Core mais il n'a pas" SHA256Cng ", juste" SHA256 ". Peut-être puis-je utiliser .net framework .dll ou existe-t-il un autre moyen de résoudre ce problème? PS. Vous devez utiliser uniquement .NET Core (application console .net et autres).
Merci.
System.AggregateException: 'One or more errors occurred. (Could not load type 'System.Security.Cryptography.SHA256Cng' from assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.)'
3 Réponses :
Je crois que la classe SHA256 fait partie de «System.Security.Cryptography». Avez-vous cette bibliothèque?
Oui. J'ai également installé d'autres packages nuget tels que l'algorithme, la cryptographie. L'algorithme a SHA256Cng mais MSDN dit ce "Sha" uniquement dans le cadre .net. Si je ne peux pas résoudre cela, je serai de nouveau à l'exception. IDK pourquoi seul le standard de cadre .net l'a. Comment résoudre ça?
Utilisez SHA256.Create ()
au lieu de new SHA256Cng ()
Je note que dans .NET Core (et non .NET Framework), la seule garantie est que l'implémentation SHA-256 fonctionnera au moins, mais il n'y a aucune garantie que SHA256.Create ()
retournera le mise en œuvre la plus rapide possible sur votre plateforme.
La seule solution que j'ai trouvée est de créer un projet de framework .NET car .NET Core ne prend pas en charge cette classe.
Avez-vous le contrôle sur le ddl? vous devez changer la référence dans le ddl pour pointer également vers le paquet nuget. Parce que pour le moment, il essaie d'obtenir le
SHA256Cng
deSystem.Core
et avec .net core leSHA256Cng
n'est pas dans le système.core
dllOk, comment faire? Je ne le trouve pas :(