Après avoir signé les assemblys tiers et les avoir ajoutés au GAC, le message d'erreur ci-dessous s'affiche: L'entrée du journal du classeur d'assemblage indique également cette erreur
Il dit que les assemblages qui ne correspondent pas ne savent pas à quel point le brouillage est important lorsque j'ai supprimé tous les obj et bin fold et batch construit l'application + réimporté les dll.
Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Running under executable C:\Program Files (x86)\Common Files\Microsoft Shared\DevServer\11.0\WebDev.WebServer40.exe
--- A detailed error log follows.
=== Pre-bind state information ===
LOG: User = AKBARCA\user
LOG: DisplayName = ClubStarterKit.Core, Version=3.0.1.0, Culture=neutral, PublicKeyToken=null
(Fully-specified)
LOG: Appbase =
file:///C:/Users/user/Desktop/NhibernateMediumTrust/NhibernateMediumUpgrade/direct/clubstar
terkit v3 preview/ClubStarterKit.Web/
LOG: DEVPATH = C:\ProgramData\Red Gate\.NET Reflector\DevPath
LOG: Initial PrivatePath =
C:\Users\user\Desktop\NhibernateMediumTrust\NhibernateMediumUpgrade\direct\clubstarterkit v3 preview\ClubStarterKit.Web\bin
Calling Assembly : ClubStarterKit.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
D'après mon expérience, cela se produit généralement après la publication de votre application et lorsque différentes versions des packages de nuget sont en cours d'utilisation. Si cela se produit également, la meilleure solution que j'ai trouvée pour y remédier consiste à cliquer avec le bouton droit de la souris sur la solution (et non sur les projets individuels) et à choisir "Gérer les paquets de pépites". Ensuite, localisez l’ensemble défectueux dans les packages installés. Vous le verrez probablement répertorié plusieurs fois. Cliquez sur "Gérer" sur chacune des anciennes versions du paquet et décochez tous vos projets. Une fois, seule la dernière version du paquet reste dans la liste. Cliquez sur "Gérer" sur celui-ci et revérifier tous les projets qui ont besoin du paquet. Cela les mettra tous à niveau pour utiliser la même version du paquet et devrait résoudre votre erreur d'incompatibilité.
J'ai fait face à un problème similaire. Dans mon cas, j'avais plusieurs projets dans ma solution.
L'un des projets faisait référence à EntityFramework 4.0 et ce projet faisait l'objet d'un autre projet faisant référence à EntityFramework 5.0. Je les ai synchronisés et le problème a disparu.
Hum .... J'ai fait face à quelque chose de similaire avec le même message d'erreur.
Dans mon cas, j'ai mis à jour manuellement la version des assemblys.
Dans l'Assemblée référencée, j'avais une autre version ...
Donc, je l'ai mis à jour dans le web.config.
Cela a résolu mon problème.
Votre === Pre-bind state information ===
semble incomplet . Généralement, il montre l'exécution et la dernière ligne indique l'erreur, aussi pouvons-nous vous aider à partager nos expériences ... Exemple:
J'espère que quelqu'un d'autre confronté à ce problème trouvera cela utile.
Dans mon cas, l’erreur se produit lorsque la version spécifiée dans le <bindingRedirect>
de web.config de l’Assembly dépendant (par exemple, Newtonsoft.Json) ne correspond pas à la version actuellement dans le dossier bin. Une fois le numéro de version du fichier web.config mis à jour, le problème est résolu.
Lorsque j’ai rencontré ce problème dans le passé, j’ai supprimé toutes les dll de mon projet du gac, reconstruit la solution, puis iisreset
et le problème a été résolu.
J'avais une cause différente: dans mon cas, j'avais déjà utilisé différentes versions de paquets de pépites et j'avais un app.config
qui, pour une raison quelconque, avait été généré automatiquement avec ce type de contenu:
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.DependencyInjection" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.1.1.0" newVersion="1.1.1.0" />
</dependentAssembly>
Donc, je n'avais que la version 1.1.0.0 installée, mais à cause de cette instruction de redirection, elle recherchait la version 1.1.1.0, même si Visual Studio disposait du nuget pour la version 1.1.0.0. Changer la newVersion en 1.1.0.0 a tout corrigé:
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.DependencyInjection" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.1.1.0" newVersion="1.1.0.0" />
</dependentAssembly>
Une façon de résoudre ce problème pourrait être d'aller sous "Gérer les paquets NuGet pour la solution" en faisant un clic droit dans l'explorateur de solutions. Une fois là, allez à "Consolidate" et trouvez le paquet qui cause les problèmes. Assurez-vous que tous les projets de la solution utilisent la même version.