HttpConfiguration manquant de l'assemblée
Je suis en construction d'un site à l'aide de MVC4. Je ne pouvais même pas commencer que je vais avoir une étrange erreur. C'est mon code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
namespace MyProject
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
}
Le message d'erreur: le type ou Le nom de l'assembly 'HttpConfiguration" n'existe pas dans l'espace de noms du Système".Web.Http' (vous manque une directive using ou une référence d'assembly?)
Il ne reconnaît pas la readonly champ RouteParameter. Il me semble que cela peut avoir quelque chose à voir avec la version de mon Système.Web dll de la version 4.0.0.0.
Un autre élément d'information complémentaire, c'est que quand je tape "à l'aide du Système.Web. ", Intellisense NE reconnaître la .Http dll
CEPENDANT, dans le code, il ne reconnaît pas l'un de ses paramètres.
- Le
HttpConfiguration
classe est dans laSystem.Web.Http
de la bibliothèque. - Oui, et le code montre que c'est en utilisant le Système.Web.Http. Cependant, il ne reconnaît pas HttpConfiguration (NI NE RECONNAISSENT RouteParameter)
- Le
System.Web
assemblée contient des classes dans le Système.Web.Espace de noms Http qui est pourquoi vous arn a pas une erreur là, cependant, leHttpConfiguration
classe est dans laSystem.Web.Http
assemblée, et non leSystem.Web
. Pouvez-vous vérifier que vous avez les deux assemblys référencés? - Je devrait faire un clic droit et ajouter dans le cadre d'une assemblée spécialement nommé System.Web.Http? Parce que je ne peux pas en trouver un. C'est peut-être la question. Pourquoi cela peut-il être?
Vous devez vous connecter pour publier un commentaire.
Je l'ai résolu. Le problème est que, lorsque j'ai créé le site, j'ai mis à jour tous les paquets via Nuget. Cependant, comme je n'étais pas allez utiliser Entity Framework, je l'ai désinstallé. Afin d'être en mesure de désinstaller ce paquet, il est nécessaire pour moi de désinstallation de Microsoft.AspNet.Les prestataires.Core 1.2 ainsi... et je l'ai fait.
Ce paquet manquant gâché les choses. J'ai vidé le projet et a commencé à nouveau. J'aurais également pu utiliser la mise à Jour-Paquet de commande dans le PM de la Console et aurait restauré tous les paquets perdus. Cependant, depuis que je l'avais fait beaucoup de gâchis par rapport à la petite (à côté null) travail que j'avais fait, j'ai décidé de tout recommencer.
Merci quand même!
Install-Package Microsoft.AspNet.WebApi.Core
après la mise à jour des packages pour enfin résoudre.install.ps1 cannot be loaded because running scripts is disabled on this system
lors de l'installation de ce paquet, lancez cette commande Powershell:ExecutionPolicy Unrestricted -Scope CurrentUser
, puis utiliser cette commande dans la console du gestionnaire de package:Update-Package -reinstall Microsoft.AspNet.WebApi.Core
Pour d'autres personnes confrontées à ce problème, ma solution est différente. Tout d'abord, j'ai été déclassement d'un projet à partir .net 4.5 .net 4.0, mais les symptômes étaient les mêmes que ci-dessus:
Je suis tombé sur un post de blog qui explique qu'il existe un lien entre
Newtonsoft.Json
etHttpConfiguration
, j'ai supprimé la référence àNewtonsoft.Json
du projet et de lapackages.config
fichier, puis ré-installéNewtonsoft.Json
à partir du gestionnaire de paquets de la console:Je n'ai pas pu désinstaller
Newtonsoft.Json
de l'emballage et de gérer une console à cause d'autres dépendances, d'où la nécessité de supprimer manuellement la référence.Voici le lien vers l'article: Newtonsoft.Json Caché Dependencny sur HttpConfiguration Sauts de Compilation
J'ai rencontré cette erreur lors du clonage d'un MVC 4.0 application qui a précédemment travaillé pour moi. Mon problème était que la
Microsoft.Net.Http
NuGet package n'était pas restaurer correctement. Je l'ai résolu de la console NuGet:Update-Package -reinstall Microsoft.Net.Http
1.Dans l'Explorateur de solutions, cliquez-droit sur le noeud du projet et cliquez sur Ajouter une Référence.
2.Dans Ajouter une Référence de boîte de dialogue, sélectionnez les Assemblages à onglet. Et le type du système“.web.http” dans la boîte de recherche dans le coin supérieur droit.
3.Sélectionnez les composants que vous souhaitez pour référence, si elle est déjà sélectionnée que d'abord supprimer la référence de **encore Ajouter une Référence.
Reconstruire à nouveau le projet. S'il vous plaît laissez-moi savoir si cela fonctionne. Merci.
Nous avons commencé à rencontrer ce problème sur un de nos projets depuis la semaine dernière. Le projet a été la construction de l'amende il y a 2 semaines & puis tout d'un coup commencé à jeter cette exception. Aucun changement n'a été fait dans les packages nuget pour ce projet. Même la vérification d'une ancienne révision à partir de SVN n'a pas le succès d'un build.
En désespoir de cause, la mise à niveau de la solution de VS2012 pour VS2013 & lo et voici, il construit! Nous soupçonnons, mais ont été incapables de confirmer, qu'un outillage de mise à jour faite dans Visual Studio 2013 a affecté cette bibliothèque dans Visual Studio 2012.
Cela ne fonctionne pas pour tous, mais il y a une option pour mettre à niveau la solution, ce qui semble résoudre le problème.
Assurez-vous de compiler pour Framework 4.5 et pas 4.0. Qui a résolu le problème pour moi
lors de mise à jour et réinstallé tout le Réseau des paquets de Nuget, et il semble qu'il n'y avait pas de solution de redémarrer Visual Studio m'a sauvé.
Encore un autre scénario. J'accepte que c'est vaguement lié à la question que je suis purement Web API. Cependant mon de recherche m'a conduit ici, donc...
J'avais un projet existant dans la solution ciblée Framework 4.5.2.
Quand j'ai ajouté un nouveau projet, il est allé à 4,5 comme je n'étais pas assez d'attention. HttpConfiguration dûment disparu de l'API Web méthode Register.
Modification de la cible à 4.5.2 résolu le HttpConfiguration question. Rappelez-vous qu'il a aussi provoqué des autres chagrin avec RouteParameter: maintenant, j'ai eu deux définitions, l'une dans le Système.Web.Http et l'autre dans le Système.Web.L'INTERFACE utilisateur.Contrôles webcontrols. Assez facile je pense.
Mon sentiment est qu'il ya plus à cette...