Cette erreur me rend fou.
J'ai installé le SendGrid NuGet dans une de mes bibliothèques de classe nommée BaseServices qui a une dépendance envers Newtonsoft.Json v7.0.1 Il l'installe donc dans mon dossier de paquets et y fait référence.
Dans la bibliothèque de classes, j'ai cette redirection de liaison :
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
</dependentAssembly>
Dans le web.config de l'application ASP.NET MVC, c'est-à-dire l'application cliente qui utilise ma bibliothèque de classes, j'ai une redirection de liaison d'assemblage pour les versions inférieures à la v6 afin de pointer vers la v6 de la bibliothèque de classes. Newtonsoft.Json bibliothèque comme ça :
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" culture="neutral"
publicKeyToken="30ad4fe6b2a6aeed" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
Lorsque j'exécute mon code d'envoi d'e-mail qui se trouve dans la section BaseServices j'obtiens cette erreur :
Le thread 0x1a4c a quitté avec le code 0 (0x0). System.IO.FileLoadException : Impossible de charger le fichier ou l'assemblage 'Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' ou l'une de ses dépendances. La définition du manifeste de l'assemblage situé à l'adresse l'assemblage localisé ne correspond pas à la référence de l'assemblage. référence. (Exception provenant de HRESULT : 0x80131040) Nom de fichier : 'Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' dans SendGrid.Helpers.Mail.Mail.Get() at BaseServices.EmailService.SendAsync(EmailMessage message) dans MonDossier \BaseServices\EmailService.cs :ligne 39
\=== Informations sur l'état de la liaison préalable === LOG : DisplayName = Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed (Entièrement spécifié) LOG : Appbase = file:///MonDossier/Web/ LOG : Initial PrivatePath = MonDossier \Web\bin Assemblage appelant : SendGrid, Version=7.0.3.0, Culture=neutral, PublicKeyToken=4f047e93159395ca. === LOG : Ce bind démarre dans le contexte de chargement par défaut. LOG : Utilisation du fichier de configuration de l'application : MyFolder \Web\web.config LOG : Utilisation de fichier de configuration de l'hôte : C:\Users\computer\Documents\IISExpress\config\aspnet.config LOG : Utilisation de fichier de configuration de la machine à partir de C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config. LOG : Référence post-politique : Newtonsoft.Json, Version=7.0.0.0, Culture=neutre, PublicKeyToken=30ad4fe6b2a6aeed LOG : Tentative de téléchargement de la nouvelle URL file:///C:/Users/computer/AppData/Local/Temp/Temporary ASP.NET Files/Root/ef9cacdf/e639667a/Newtonsoft.Json.DLL. LOG : Tentative de téléchargement de la nouvelle URL file:///C:/Users/computer/AppData/Local/Temp/Temporary ASP.NET Files/Root/ef9cacdf/e639667a/Newtonsoft.Json/Newtonsoft.Json.DLL. LOG : Tentative de téléchargement de la nouvelle URL file:///MyFolder/Web/bin/Newtonsoft.Json.DLL. WRN : Comparaison des fichiers nom d'assemblage a donné lieu à une discordance : Major Version ERR : Failed to de l'assemblage (hr = 0x80131040). Sondage terminé.