tutorial net mvc espaƱol ejemplo curso create asp c# asp.net-mvc

c# - net - No se pudo cargar el archivo o ensamblado ''Microsoft.Web.Infrastructure,



mvc c# (13)

Debe descargar el marco ASP.NET MVC en el servidor que aloja su aplicación. Es una solución rápida, solo descárguela e instálela desde aquí (este es el marco de MVC 3 http://www.asp.net/mvc/mvc3 ), luego, boom, está listo para comenzar.

Intenté subir mi sitio web a un servidor. Funcionaba bien con mi host local, así que cargué todo en mi carpeta localhost wwwroot al servidor y cambié la cadena de conexión.

Pero hay este error:

Exception information: Exception type: InvalidOperationException Exception message: The pre-application start initialization method Start on type RouteDebug.PreApplicationStart threw an exception with the following error message: Could not load file or assembly ''Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'' or one of its dependencies. The system cannot find the file specified.. at System.Web.Compilation.BuildManager.InvokePreStartInitMethods(ICollection`1 methods) at System.Web.Compilation.BuildManager.CallPreStartInitMethods() at System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) Could not load file or assembly ''Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'' or one of its dependencies. The system cannot find the file specified. at RouteDebug.PreApplicationStart.Start()

El proyecto fue nopcommerce .

¿Qué se debe hacer para resolver este error?


Instalar AspNetMVC3ToolsUpdateSetup descargado desde aquí resolvería este problema sin agregar referencia


Descubrí que, aunque funcionaba en mi cuadro dev, el ensamblaje no se agregaba al proyecto. Busque Microsoft.Web.Infraestructura en NuGet e instálelo desde allí. Luego, asegúrese de que haya seleccionado Copiar local.


Resulta que después de hacer una limpieza de referencia, eliminó Microsoft.Web.Infrastructure , pero no del archivo packages.config. Después de intentar agregarlo de nuevo usando la Package Manager Console , Visual Studio dice que ya está instalado, que es falso porque se eliminó.

Luego eliminé la línea de código en el archivo packages.config

<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />

y corrió el comando otra vez

PM> Install-Package Microsoft.Web.Infrastructure

Después de esto, ahora funciona bien.


Solución muy fácil:

En Visual Studio, vaya a Herramientas / Library Package Manager / Package Manager Console

<PM> Install-Package Microsoft.Web.InfraStructure

Pasar un buen rato


Resharper detectó Microsoft.Web.Infraestructura como una referencia no utilizada y la eliminé. Localmente funcionaba bien, pero luego recibí el mismo error después de publicar en el desarrollador.

Conclusión, tenga cuidado al eliminar las referencias marcadas como no utilizadas por Resharper


Aquí estaba mi escenario.

Tenía una solución de proyectos múltiples que contenía los proyectos A, B, C .. N.

El Proyecto B era una biblioteca de códigos que contenía una fábrica para objetos de selectlist de selectlist .

El proyecto se ejecutaría como se esperaba en el desarrollo, pero cuando publicamos en nuestro entorno de prueba recibí el error que estaba encontrando:

Could not load file or assembly ''Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'' or one of its dependencies. The system cannot find the file specified.

Lo que sucedió fue a través del administrador de paquetes Nuget, accidentalmente instalé "Microsoft ASP.NET MVC" que instaló dependencias para:

  • Microsoft.AspNet.Razor
  • Microsoft.AspNet.WebPages

Bajo y he aquí, Microsoft.AspNet.WebPages depende de "Microsoft.Web.Infraestructura".

Mi solución fue desinstalar los tres paquetes mencionados anteriormente (MVC, Razor, WebPages) y luego hacer clic derecho en referencias> agregar referencia> Ensambles> Extensiones> Sistema.Web.MVC.


Tuve un problema similar. NuGet mostró que el paquete se instaló correctamente, pero la referencia no se agregó a mi proyecto.

Ejecutando <PM> Install-Package Microsoft.Web.InfraStructure tampoco ayudó porque el administrador de paquetes seguía diciendo que ya estaba instalado

Finalmente lo agregué manualmente editando el archivo csproj y agregando estas líneas:

<Reference Include="Microsoft.Web.Infrastructure"> <HintPath>../packages/Microsoft.Web.Infrastructure.1.0.0.0/lib/net40/Microsoft.Web.Infrastructure.dll</HintPath> <Private>True</Private> </Reference>

Eso resolvió el problema.



A pesar del número de respuestas agregaré otro que en mi humilde opinión hace que las cosas sean un poco más claras.

Como Rob y Wrightmail ya mencionaron Microsoft.Web.Infrastructure es un paquete NuGet (no se necesita enlace, lo tienes en NuGet Package Manager).

Aparentemente, su proyecto lo mencionó y desapareció de repente. Puede existir una cantidad de razones, pero lo importante es que, a pesar de que haya habilitado la restauración automática de paquetes en Visual Studio, puede :

  • Administrar paquetes de NuGet para la solución (menú contextual en el Explorador de soluciones),
  • Permitir que NuGet descargue paquetes perdidos (configuraciones),
  • Comprueba automáticamente si faltan paquetes durante la compilación en Visual Studio (configuración),

ciertos paquetes pueden requerir una reinstalación manual. No sé qué es lo que confunde a NuGet, tal vez eliminar manualmente una referencia, pero esta es la solución que suelo aplicar en esos casos. La siguiente consola de PM ayuda a restaurar un paquete conservando la versión original (sin actualizar a uno nuevo existente):

Update-Package Microsoft.Web.Infrastructure -Reinstall

Es posible que se requiera preservación de la versión si no desea sobrescribir accidentalmente un paquete existente con su versión más reciente, que posiblemente elimine la funcionalidad "anterior" que haya utilizado en su proyecto.

Y, como prueba, a pesar de ser bastante larga, de que la versión no cambia, aquí está el resultado cuando se ejecuta el comando:

PM> Update-Package Microsoft.Web.Infrastructure -Reinstall Attempting to gather dependencies information for multiple packages with respect to project ''Samples.NuGet/DemoApp/DemoApp'', targeting ''.NETFramework,Version=v4.5.2'' Attempting to resolve dependencies for multiple packages Resolving actions install multiple packages ... Package removal starts here... ... Removed package ''Microsoft.AspNet.Web.Optimization 1.1.3'' from ''packages.config'' Successfully uninstalled ''Microsoft.AspNet.Web.Optimization 1.1.3'' from DemoApp Removed package ''WebGrease 1.5.2'' from ''packages.config'' Executing script file ''D:/Projects/DemoApp/packages/WebGrease.1.5.2/tools/uninstall.ps1'' Successfully uninstalled ''WebGrease 1.5.2'' from DemoApp ... More package removals here. Omitted for brevity... ... Removed package ''Microsoft.Web.Infrastructure 1.0.0.0'' from ''packages.config'' Successfully uninstalled ''Microsoft.Web.Infrastructure 1.0.0.0'' from DemoApp ... More package removals here. Omitted for brevity... ... Removed package ''Antlr 3.4.1.9004'' from ''packages.config'' Successfully uninstalled ''Antlr 3.4.1.9004'' from MvcLenseApp Package ''Antlr.3.4.1.9004'' already exists in folder ''D:/Projects/Lense.Mvc5/packages'' --- Install packages (in reverse order) --- Package ''Antlr.3.4.1.9004'' already exists in folder ''D:/Projects/DemoApp/packages'' Added package ''Antlr.3.4.1.9004'' to ''packages.config'' Successfully installed ''Antlr 3.4.1.9004'' to DemoApp ... More package installs here. Omitted for brevity... ... Package ''Microsoft.Web.Infrastructure.1.0.0'' already exists in folder ''D:/Projects/Lense.Mvc5/packages'' Added package ''Microsoft.Web.Infrastructure.1.0.0'' to ''packages.config'' Successfully installed ''Microsoft.Web.Infrastructure 1.0.0'' to MvcLenseApp ... More package installs here. Omitted for brevity... ... Package ''WebGrease.1.5.2'' already exists in folder ''D:/Projects/DemoApp/packages'' Added package ''WebGrease.1.5.2'' to ''packages.config'' Executing script file ''D:/Projects/DemoApp/packages/WebGrease.1.5.2/tools/install.ps1'' Successfully installed ''WebGrease 1.5.2'' to DemoApp Package ''Microsoft.AspNet.Web.Optimization.1.1.3'' already exists in folder ''D:/Projects/DemoApp/packages'' Added package ''Microsoft.AspNet.Web.Optimization.1.1.3'' to ''packages.config'' ... End of package re-install. ... Successfully installed ''Microsoft.AspNet.Web.Optimization 1.1.3'' to DemoApp PM>

Por supuesto, si desea volver a instalar todos los paquetes, es posible que deba familiarizarse con los comandos de actualización / instalación en NuGet aquí y aquí .


Deberá incluir el dll con su proyecto y agregarle una referencia también.

Aquí hay un enlace a un problema similar que ya está en Stack: MVC3 Deployment Dependency Problems


Para mí, Microsoft.Web.Infrastructure.dll faltaba en la carpeta bin, no estaba configurado para copiar local en el proyecto. Copió el dll de otro proyecto en la solución y se carga la página.


No sé lo que sucedió con mi proyecto, pero hizo referencia a la ruta incorrecta a la DLL. Nuget lo instaló correctamente y, de hecho, estaba en mi sistema de archivos junto con los otros paquetes, pero solo se mencionó incorrectamente.

La carpeta de packages tiene dos directorios desde mi proyecto y solo estaba subiendo uno iniciando la ruta con ../packages/ . Cambié la ruta para comenzar con ../../packages/ y solucionó mi problema.