GlobalConfiguration.Configure () n'est pas présent après L'API Web 2 and.NET 4.5.1 migration
j'ai récemment commencé à suivre ce guide pour migrer mon projet vers .NET 4.5.1 et L'Api Web 2.
la toute première chose que le développeur de MS Rick Anderson vous demande de faire est de changer:
WebApiConfig.Register(GlobalConfiguration.Configuration);
à
GlobalConfiguration.Configure(WebApiConfig.Register);
dans le monde.fichier asax. Pourtant, cela me donne une erreur quand j'essaie de construire:
Erreur 1 ' Système.Web.Http.GlobalConfiguration " n'est pas contient une définition pour 'configurer'
mon projet est actuellement sur MVC 5 et Api Web 2 et .net 4.5.1, pourtant je pense système.Web.Http pense toujours que c'est le .NEt 4.0 version.
Comment puis-je réparer ça?
Merci.
Edit:
Voici mes Fixations de montage:
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
</dependentAssembly>
<!--
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly> -->
</assemblyBinding>
tout a été commenté après le début a été commenté parce que j'ai eu l'erreur:
avertissement 2 a trouvé des conflits entre différentes versions du même assemblage dépendant qui n'ont pas pu être résolus. Ces conflits de référence sont listés dans le journal de construction lorsque le log verbosity est défini en détail.
et se débarrasser des fixations dures était en train de réparer ça.
10 réponses
Il a besoin du système.Web.http.hébergeur qui fait partie de ce paquet. J'ai corrigé cela en installant le paquet suivant:
PM> Install-Package Microsoft.AspNet.WebApi.WebHost
ou cherchez dans nuget https://www.nuget.org/packages/Microsoft.AspNet.WebApi.WebHost/5.1.0
aucune de ces idées n'a aidé mon projet en utilisant MVC 5.2.2.
- du Système.Web.Http 5.2.2 était déjà installé
- supprimer le dossier Packages et télécharger à nouveau toutes les bibliothèques NuGet n'a rien fait
- Web.config avait déjà une entrée dependent assemblly pour le système.Web.Http
forcer une réinstallation a corrigé le problème. De la console du Gestionnaire de paquets NuGet:
update-Package -reinstall Microsoft.AspNet.WebApi.WebHost
GlobalConfiguration
la classe est une partie de Microsoft.AspNet.WebApi.WebHost
package nuget...Avez-vous mis à jour ce paquet pour Web API 2?
ainsi que l'utilisation de la console de gestionnaire de paquets pour obtenir nuget de mettre à jour le projet avec Installer-paquet Microsoft.AspNet.WebApi.Hébergeur pour manquant GlobalConfiguration ,
I neededed Install-Package Microsoft.AspNet.WebApi.SelfHost manquantes à l'aide du Système.Web.Http;
vous pouvez vérifier que votre projet a Microsoft.AspNet.WebApi.WebHost
installé. Comme il s'avère, dans mon cas, Microsoft.AspNet.WebApi.WebHost
a été installé dans un autre projet, mais pas le projet particulier qui en avait besoin. Dans votre colis.config, Vérifiez qu'une ligne comme celle-ci est bien là:
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.1.1" targetFramework="net45" />
si cela n'est pas présent, vous n'avez pas Microsoft.AspNet.WebApi.WebHost
installé dans votre projet. Vous pouvez installer avec Nuget Package Manager ou via la Console Package Manager. À installer à partir de la Console du Gestionnaire de paquets, exécutez cette commande:
Install-Package Microsoft.AspNet.WebApi.WebHost
GlobalConfiguration.L'API de configuration est disponible dans "Microsoft.AspNet.WebApi.Hébergeur" version="5.2.3"
et pas dans" Microsoft.AspNet.WebApi.Hébergeur" version="4.0.0"
si le problème persiste après désinstallation et installation de Microsoft.AspNet.WebApi.WebHost ajoute alors aussi des followings dans web.config pour globalconfiguration de travail
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.2.0.0" />
</dependentAssembly>
" Install-Package Microsoft.AspNet.WebApi.De base" a très bien fonctionné.
mon problème était que le gestionnaire de paquets nuget n'a pas fait une vraie mise à jour, mais les fichiers contenaient des références à des versions plus anciennes, donc j'ai d'abord enlevé tous les paquets relatifs à mvc installés (y compris razor et api web) puis je les ai de nouveau installés et la mise à jour de la version du razor dans views/web.config à la version 3.0.0.
Aucune de ces solutions n'a fonctionné pour moi. J'ai eu un enchevêtrement de paquets Nuget qui ne pouvaient pas être mis à jour à cause de dépendances circulaires entre eux.
j'aurais à régler ça à l'ancienne. J'ai créé un nouveau projet MVC/api web et copié manuellement System.Web.Http
et System.Web.Http.WebHost
à partir du nouveau projet dans les dossiers Nuget de la solution existante. De là, j'ai mis à jour les références par, OMG, "navigation" et corrigé le problème.