GlobalConfiguration.Configurer() ne présente après l'API Web 2 et .NET 4.5.1 la migration
J'ai récemment commencé à suivre ce guide de migrer mon projet .NET 4.5.1 et Web Api 2.
La première chose que MS développeur Rick Anderson vous demande de faire est de changer:
WebApiConfig.Register(GlobalConfiguration.Configuration);
à
GlobalConfiguration.Configure(WebApiConfig.Register);
dans le monde.asax fichier. Pourtant, ce qui me donne une erreur lorsque j'essaie de construire:
Erreur De 1 'Système.Web.Http.GlobalConfiguration' ne contient pas une définition pour 'Configurer'
Mon projet est actuellement sur MVC 5 et Web Api 2 et .NET 4.5.1, mais je pense que le Système.Web.Http pense toujours que c'est l' .NEt 4.0 version.
Comment puis-je corriger cela?
Merci.
Edit:
Voici mon montage fixations:
<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 commenté après le sommet a été commenté parce que je recevais le message d'erreur:
Avertissement 2 Trouvé les conflits entre les différentes versions de la même dépendante de l'assemblée qui n'a pas pu être résolu. Ces conflits sont répertoriés dans le journal de génération lorsque le niveau de détail du journal est défini de manière détaillée.
et de se débarrasser de la dur liaisons a été la fixation de la.
- Avez-vous désinstallé
Microsoft.AspNet.Web.Helpers.Mvc
en premier? - regarde ma réponse stackoverflow.com/a/20653546/3114457 elle devrait résoudre vos problèmes avec la migration
- Veuillez cocher stackoverflow.com/a/21514748/2343 comme bonne réponse!
Vous devez vous connecter pour publier un commentaire.
Il a besoin du système.web.http.hébergeur qui fait partie de ce paquet. J'ai résolu ce problème en installant le package suivant:
ou recherchez-le dans nuget https://www.nuget.org/packages/Microsoft.AspNet.WebApi.WebHost/5.1.0
GlobalConfiguration.Configure(WebApiConfig.Register);
a été inséré dans le monde.asax vers le haut juste après la AreaRegistration, et Il a très bien fonctionné.Microsoft.AspNet.WebApi.WebHost
à la dernière versionAucune de ces idées ont aidé mon projet en utilisant MVC 5.2.2.
Forcer une réinstallation corrigé le problème. À partir du gestionnaire de package NuGet console:
update-Package -reinstall Microsoft.AspNet.WebApi.WebHost
GlobalConfiguration
classe est partie deMicrosoft.AspNet.WebApi.WebHost
package nuget...Avez-vous mis à jour ce paquet de Web API 2?Ainsi que l'aide de la console du gestionnaire de Package pour obtenir nuget pour mettre à jour le projet avec Install-Package Microsoft.AspNet.WebApi.Hébergeur
pour le manque GlobalConfiguration,
J'avais besoin Install-Package Microsoft.AspNet.WebApi.SelfHost manquantes en utilisant le Système.Web.Http;
Vous voudrez peut-être 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.de configuration, vérifiez que la ligne est là:Si ce n'est pas présente, vous n'avez pas
Microsoft.AspNet.WebApi.WebHost
installé dans votre projet. Vous pouvez soit l'installer à l'aide de Gestionnaire de Package Nuget ou via le Gestionnaire de paquets de la Console. Pour installer à partir du Gestionnaire de paquets de la Console, exécutez cette commande:GlobalConfiguration.Configurer l'API est disponible dans "de Microsoft.AspNet.WebApi.Hébergeur" version="5.2.3"
et pas dans "de Microsoft.AspNet.WebApi.Hébergeur" version="4.0.0"
Si le problème restant après la désinstallation et l'installation de Microsoft.AspNet.WebApi.Hébergeur puis aussi ajouter des éléments suivants dans le web.config pour globalconfiguration de travail
"Install-Package Microsoft.AspNet.WebApi.De base" a très bien fonctionné.
Mon problème était que le gestionnaire de package nuget ne pas faire une vraie mise à jour, mais les fichiers contiennent des références à d'anciennes versions, j'ai donc d'abord enlevé toutes les installé mvc paquets (y compris rasoir et web api), puis l'installation et la mise à jour de la version du rasoir dans les vues/web.config de la version 3.0.0.
Aucune de ces solutions n'a fonctionné pour moi. J'ai eu un enchevêtrement de packages Nuget qui n'a pas pu mettre à jour en raison des dépendances circulaires sur uns des autres.
Je voudrais avoir des pour corriger cela à l'ancienne. J'ai créé un nouveau MVC/api web du projet et copiés manuellement
System.Web.Http
etSystem.Web.Http.WebHost
de la nouveau projet dans le Nuget dossiers de l'existant solution. À partir de là, j'ai mis à jour les références par, OMG, "navigation" et fixe le problème.cela a résolu ce problème en ajoutant de l'espace de noms Global.asax.cs fichier.
en utilisant le Système.Web.Http;
cette résolu le problème.