tutorial net método mvc entre encontrado ejemplos diferencias asp asp.net-mvc-4 asp.net-web-api odata assembly-resolution

asp.net-mvc-4 - net - web forms c# tutorial



No se pudo cargar el archivo o ensamblado System.Net.Http, Version=4.0.0.0 con ASP.NET(MVC 4) Web API OData Prerelease (14)

Problema

Después de instalar el paquete de Microsoft ASP.NET Web API OData 5.0.0-rc1 prelanzamiento termino con la siguiente excepción:

No se pudo cargar el archivo o ensamblado ''System.Web.Http, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35'' o una de sus dependencias. La definición del manifiesto del ensamblaje ubicado no coincide con la referencia de ensamblaje. (Excepción de HRESULT: 0x80131040)

Mi proyecto MVC 4 es nuevo y realmente pequeño, no tiene nada de lujoso. Me dirijo a .NET framework 4.5

Necesito este paquete nuget para implementar PATCH usando la clase Delta (cuando uso la versión 4.0.0.0 del paquete, la clase Delta no funciona).

¿Cómo puedo arreglar eso?

Mis versiones de System.Web.Http

En GAC tengo la versión 5.0.0.0 de System.Web.Http

gacutil -l System.Web.Http El caché de ensamblaje global contiene los siguientes ensamblajes: System.Web.Http, Version = 5.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35, processorArchitecture = MSIL

En Visual Studio , cuando navego en ensambles, la versión dada de System.Web.Http es 4.0.0.0 (¿Por qué?)

En mi proyecto , la referencia a System.Web.Http

  • Tiene la versión 5.0.0.0
  • Apunta a la carpeta / lib / net45 / del paquete
  • Tiene CopyLocal = true

Cosas que probé

Intenté enlazar redirigir v 4.0.0.0 a 5.0.0.0 en 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>

Pero me da otra excepción:

Intento por el método ''System.Web.Http.GlobalConfiguration..cctor ()'' para acceder al campo ''System.Web.Http.GlobalConfiguration.CS $ <> 9__CachedAnonymousMethodDelegate2''.

Supongo que la versión 4.0.0.0 realmente necesita ser utilizada por el motor principal de Web Api.

Preguntas relacionadas

Error de análisis de código No se pudo cargar el archivo o ensamblado ''System.Net.Http, Versión = 2.0.0.0 en la API web MVC4 No se pudo cargar el archivo o ensamblado'' System.Net.Http, Versión = 2.0.0.0 en la API web MVC4


Después de modificar las referencias en el archivo Web.config como se mencionó anteriormente, resolvimos las referencias.

Estaba enfrentando un problema similar.

Para nosotros, tenemos referencia Microsoft.Data.Edm.dll y OData.dll y otros ensamblajes de Archivos de programa:

C:/Program Files (x86)/Microsoft WCF Data Services/5.0 /bin/.NETFramework/Microsoft.Data.Edm.dll

y

C:/Program Files (x86)/Microsoft WCF Data Services/5.0 /bin/.NETFramework/Microsoft.Data.OData.dll

y la versión fue 5.6.4 .

Una vez que cambio la referencia de ambos ensamblados a C:/....Project/packages/Microsoft.Data.Edm.5.6.0 , se resolvió el problema


Elimine System.Web.Http y System.Net.Http.Formatting de sus referencias y agregue referencias de nuevo navegando a su carpeta bin (donde fueron copiados por nuget) Ahora la versión del archivo dice 5.0.0.0


Encontré el mismo problema y lo resolví configurando CopyLocal en true para las siguientes librerías:

System.Web.Http.dll
System.Web.Http.WebHost.dll
System.Net.Http.Formatting.dll

Debo agregar que uso MVC4 y NET 4


Enfrenté el mismo error. Cuando instalé Unity Framework para Dependency Injection, las nuevas referencias de Http y HttpFormatter se agregaron a mi configuración. Así que aquí están los pasos que seguí.

Ejecuté el siguiente comando en NuGet Package Manager Console: PM> Install-Package Microsoft.ASPNet.WebAPI -pre

Y agregó referencia física al dll con la versión 5.0


Este error apareció varias veces en varios proyectos diferentes.

Lo que finalmente descubrí es que cuando construía, ya había una copia del ensamblado binario system.web.mvc en mi carpeta bin.

Para solucionar esto, haga clic derecho en el conjunto en la lista de referencias y seleccione "propiedades". Verifique si esta es la última versión mirando la propiedad "Versión". Si es así, cambie "Copiar local" a verdadero.

Esto asegurará que la versión referenciada en su proyecto sea la versión que terminará en su carpeta de binarios.

Si aún obtiene el error, intente ejecutar NuGet para obtener la última versión, luego intente lo anterior nuevamente.

Buena suerte - ¡este error es un dolor!


Esto debería funcionar, tuve el mismo problema e hice esto para solucionarlo:

Hice una captura de pantalla del sitio oficial de MSDN ya que no tuve tiempo de escribir una respuesta adecuada.


Experimenté este problema cuando traté de actualizar un Hot Towel Project desde la plantilla del proyecto y cuando creé un proyecto vacío e instalé HotTowel a través de nuget en VS 2012 a partir del 23/10/2013.

Para solucionarlo, actualicé a través de los paquetes Nuget the Web Api Web Host y Web API a 5.0, la versión actual en NuGet en este momento (10/23/2013).

Luego agregué el enlace dirige:

<dependentAssembly> <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" /> </dependentAssembly> <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>


Fui al administrador de paquetes nuget y actualicé mis paquetes. Ahora funciona. El principal que actualicé fue Microsoft.AspNet.WebApi.Core. Puede ser necesario hacer esto con ambos proyectos para sincronizar las referencias adecuadas.


Lo hice funcionar actualizando el paquete de WebApi a la versión preliminar usando nuget:

PM> Microsoft.AspNet.WebApi -Pre

Para forzar el proyecto utilizando la última versión de WebApi, algunas modificaciones a la raíz Web.config fueron necesarias:

1) Versión de páginas web de 2.0.0.0 a 3.0.0.0

<appSettings> <add key="webpages:Version" value="3.0.0.0" /> </appSettings>

2) Enlace de redirección a 5.0.0.0 para System.Web.Http y System.Net.Http.Formatting

<dependentAssembly> <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" /> </dependentAssembly> <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>

Creo que eso es todo

PS: Solución altamente inspirada en WebAPI OData 5.0 Beta - El acceso a GlobalConfiguration arroja un error de seguridad


Me enfrenté al mismo tipo de problema y seguí los pasos a continuación para resolver el problema

Vaya a Herramientas -> Administrador de paquetes de biblioteca -> Consola de Administrador de paquetes y ejecute el siguiente comando

Install-Package Microsoft.ASPNet.WebAPI -pre


O puede hacer esto desde NuGet Package Manager Console

Install-Package Microsoft.AspNet.WebApi -Version 5.0.0

Y luego podrá agregar la referencia a System.Web.Http.WebHost 5.0


Si ocurre este problema, revise web.config en la siguiente sección

La sección siguiente proporciona la versión de dll particular utilizada

después de consultar esta sección en web.config, abra el explorador de soluciones y seleccione la referencia del árbol del proyecto como se muestra. Solution Explorer-> Referencia

Después de expandir la referencia, busque el dll que causó el error. Haga clic derecho en la referencia dll y verifique la versión como se muestra en la imagen de arriba.

Si tanto la versión de configuración dll como la dll referenciada son diferentes, obtendría esta excepción. Asegúrese de que ambos sean de la misma versión, lo que ayudaría.


Visual Studio 2013 tiene una nueva función para encargarse de esto. Cuando construya la aplicación, debería ver advertencias sobre las diferentes versiones de un ensamblaje al que se hace referencia. Haga doble clic en la advertencia para agregar redireccionamientos de enlace de ensamblaje a web.config.

Consulte http://msdn.microsoft.com/en-us/library/2fc472t2.aspx para obtener más detalles.

jeff.eynon señala a continuación que necesita tener el web.config desprotegido (si usa el control de fuente TFS) para que VS edite el archivo automáticamente. ¡Gracias por el consejo!


lo soluciono por cierto nuget. el primero que instalas nuget. el segundo que usas
ilustración siguiente:

tercero: compruebe si esta es la última versión mirando la propiedad "Versión".

Finalmente, el proyecto de cheques tiene la última versión nuevamente.