Impossible de charger le fichier ou l'assembly System.Net.Http, Version=4.0.0.0 avec ASP.NET MVC (4) de l'API Web OData Préliminaire
Problème
Après l'installation de la Microsoft ASP.NET l'API Web OData paquet 5.0.0-rc1 préliminaire, je me retrouve avec l'exception suivante:
Impossible de charger le fichier ou l'assembly 'Système.Web.Http, Version=4.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35' ou une de ses
les dépendances. L'assemblée manifeste définition ne fait pas de
match de l'assemblée de référence. (Exception de HRESULT: 0x80131040)
Mon MVC 4 projet est tout nouveau et vraiment petit, rien de spécial en elle. Je cible .NET framework 4.5
J'ai besoin de cette package nuget à mettre en œuvre PATCH à l'aide de la classe Delta
Lorsque j'utilise la version 4.0.0.0 de l'emballage, le Delta de la classe n'est pas de travail).
Comment puis-je régler ce problème?
Mes versions de Système.Web.Http
Dans GAC j'ai la version 5.0.0.0 de Système.Web.Http
gacutil -l Système.Web.Http Le Global Assembly Cache contient les
ensembles suivants: Système d'.Web.Http, Version=5.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35,
processorArchitecture=MSIL
Dans Visual Studio, quand je navigue dans les assemblées, la version donnée du Système.Web.Http est 4.0.0.0 (Pourquoi?)
Dans mon projet, la référence au Système.Web.Http
- A la version 5.0.0.0
- Points à l' \lib\net45\ dossier de l'emballage
- A CopyLocal=true
Choses que j'ai essayé
J'ai essayé de lier rediriger v 4.0.0.0 à 5.0.0.0 dans le Web.config
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="4.0.0.0-4.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
Mais il me donne une autre exception:
Tenter par la méthode 'Système.Web.Http.GlobalConfiguration..cctor()' pour
domaine de l'accès
'Système.Web.Http.GlobalConfiguration.CS$<>9__CachedAnonymousMethodDelegate2'
a échoué.
Je suppose que v 4.0.0.0 vraiment besoin d'être utilisé par les Web de base de l'Api du moteur.
Lié à des questions
L'Analyse de Code d'erreur impossible de charger le fichier ou l'assembly 'Système.Net.Http, Version=2.0.0.0 dans MVC4 Web API
Impossible de charger le fichier ou l'assembly 'Système.Net.Http, Version=2.0.0.0 dans MVC4 Web API
- Peut-être que cette réponse peut vous aider: stackoverflow.com/a/18700279/795876
Vous devez vous connecter pour publier un commentaire.
Visual Studio 2013 a une nouvelle fonctionnalité pour prendre soin de cela. Lorsque vous générez l'application, vous devriez voir mises en garde sur les différentes versions d'un assemblage d'être référencé. Double-cliquez sur l'avertissement à ajouter de l'assemblée de liaison des redirections pour le web.config.
Voir http://msdn.microsoft.com/en-us/library/2fc472t2.aspx pour plus de détails.
jeff.eynon les notes ci-dessous que vous devez avoir sur le web.config vérifié (si utilisation de TFS source) pour obtenir des SV à éditer le fichier automatiquement. Merci pour l'astuce!
J'ai fait le travail par la mise à niveau de la WebApi package de la version bêta à l'aide de nuget:
Afin de forcer le projet à l'aide de la dernière version de WebApi, certaines modifications de la racine Web.config étaient nécessaires:
1) les Pages web Version 2.0.0.0 à 3.0.0.0
2) redirection de Liaison vers 5.0.0.0 pour le Système.Web.Http et du Système.Net.Http.Mise en forme
Je pense que c'est
PS: Solution très inspiré de WebAPI OData 5.0 Bêta - Accès GlobalConfiguration jette Erreur de Sécurité
J'ai rencontré le même problème et je l'ai résolu en mettant CopyLocal à true pour la suite de la libs:
System.Web.Http.dll
System.Web.Http.WebHost.dll
System.Net.Http.Formatting.dll
Je dois ajouter que j'utilise MVC4 et NET 4
J'ai rencontré ce problème quand j'ai essayé de mettre à jour une Serviette Chaude du Projet à partir du modèle de projet et quand j'ai créé un projet vide et installé HotTowel via nuget dans VS 2012 de 10/23/2013.
À corriger, j'ai mis à jour via Nuget l'Api Web d'hébergement Web et Web API paquets 5.0, la version actuelle dans la NuGet pour le moment (10/23/2013).
J'ai ensuite ajouté la liaison ordonne:
Ou vous pouvez le faire à partir de la Console du Gestionnaire de Package NuGet
Et alors vous serez en mesure d'ajouter la référence au Système.Web.Http.Hébergeur 5.0
Supprimer Du Système.Web.Http et du Système.Net.Http.Mise en forme de vos références et Ajouter des références de retour en en accédant à votre dossier bin (où ils ont été copiés par nuget) Maintenant la version du fichier dit 5.0.0.0
Cette erreur a surgi à plusieurs reprises sur plusieurs projets différents.
Ce que j'ai enfin compris, c'est que quand je serait de construire, il y avait déjà une copie du système.web.mvc binaire de l'assemblée dans mon dossier bin.
Pour résoudre ce problème, cliquez-droit sur l'assemblée dans la liste de références et sélectionnez "propriétés". Vérifiez pour voir si c'est la dernière version en regardant la "Version" de la propriété. Si elle l'est, interrupteur "Copie Locale" à true.
Ce sera assurez-vous que la version référencée dans votre projet est la version qui sera à la fin de vos fichiers binaires dossier.
Si l'erreur persiste, essayez d'exécuter nuGet pour obtenir la dernière version, puis essayez de ladite nouveau.
Bonne chance à cette erreur est une douleur!
J'ai fait face à la même erreur. Quand j'ai installé l'Unité Cadre pour l'Injection de Dépendances de la nouvelle référence de l'Http et HttpFormatter a été ajouté dans ma configuration. Donc, voici les étapes que j'ai suivi.
J'ai couru commande suivante sur le Gestionnaire de Package nuGet Console:
H> Install-Package Microsoft.ASPNet.WebAPI -pré
Et a ajouté physique de référence à la dll avec la version 5.0
- je le résoudre par voie de nuget. la première fois que vous installez nuget.
la deuxième vous utilisez.
illustration suivre:
troisième : Vérifiez pour voir si c'est la dernière version en regardant la "Version" de la propriété.
Le enfin : vous contrôlez projet d'avoir la dernière version de nouveau.
Que j'ai rencontré le même type de problème et de suivre les étapes ci-dessous pour résolu le problème
Aller dans Outils --> Gestionnaire de paquets de Bibliothèque --> Gestionnaire de paquets de la Console et exécutez la commande ci-dessous
Install-Package Microsoft.ASPNet.WebAPI -pré
Après avoir modifié les Références dans le
Web.config
fichier comme indiqué ci-dessus, nous avons résolu les références.J'ai été confronté à des questions semblables.
Pour nous, nous avons de référence
Microsoft.Data.Edm.dll
etOData.dll
et d'autres assemblées à partir de Fichiers de Programme:et
et version a été 5.6.4.
Une fois que j'ai changer la référence de deux assemblages
C:\....Project\packages\Microsoft.Data.Edm.5.6.0
, le problème a été résoluSuis allé dans gestionnaire de package nuget et mise à jour de mes paquets. Maintenant, il fonctionne. Le principal j'ai mis à jour est le Microsoft.AspNet.WebApi.De base. Peut-être besoin de le faire avec les deux projets à synchroniser les références appropriées.
Si ce problème se produit, vérifier avec bonté le site web.config dans la section ci-dessous
La section ci-dessous donne la version de la dll particulier utilisé
après vérification de cette section dans le web.de configuration, ouvrez l'explorateur de solutions et sélectionnez une référence à partir de l'arborescence du projet, comme indiqué . L'Explorateur de solutions->Référence
Après l'extension de référence, trouver la dll qui a provoqué l'erreur. Clic droit sur la référence de la dll et de vérifier pour la version comme indiqué dans l'image ci-dessus.
Si les deux config de la version de la dll et référencé dll est différente, vous auriez cette exception. Assurez-vous que les deux sont de la même version qui pourrait l'aider.