c# - No se pudo cargar el archivo o ensamblado ''System.Web.Razor'' o una de sus dependencias
asp.net asp.net-mvc (5)
- Borre las carpetas Nuget clear "Temp".
- Elimine el paquete Nuget del origen del proyecto y luego vuelva a instalar el paquete Nuget usando el administrador de paquetes.
- Retire la carpeta bin.
- Proyecto limpio y proyecto de construcción.
- Ejecutar proyecto.
Hecho
Utilicé Umbraco 4.11.6 en mi sitio web (aplicación web). Mi sitio web se trabajó en localhost (probado en Visual Studio 2012 e IIS (v7)) pero cuando lo ejecuto desde el espacio de Internet recibí un error. El error fue:
No se pudo cargar el archivo o ensamblado ''System.Web.Razor'' 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)
Rastreo de carga de ensamblaje: la siguiente información puede ser útil para determinar por qué no se pudo cargar el ensamblado ''System.Web.Razor''.
WRN: el registro de enlace de ensamblaje está APAGADO. Para habilitar el registro de fallas de enlace de ensamblaje, establezca el valor de registro [HKLM / Software / Microsoft / Fusion! EnableLog] (DWORD) en 1. Nota: Hay una cierta penalización de rendimiento asociada con el registro de fallas de enlace de ensamblaje. Para desactivar esta función, elimine el valor de registro [HKLM / Software / Microsoft / Fusion! EnableLog].
Stack Trace:
[FileLoadException: no se pudo cargar el archivo o ensamblado ''System.Web.Razor'' 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)]
[FileLoadException: no se pudo cargar el archivo o ensamblado ''System.Web.Razor, Version = 2.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)] System.Reflection.RuntimeAssembly._nLoad (AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark y stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +0
System.Reflection.RuntimeAssembly.InternalLoadAssemblyName (AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark y stackMark, IntPtr pPrivHostBinder, booleano throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +210
System.Reflection.RuntimeAssembly.InternalLoad (String assemblyString, Evidence assemblySecurity, StackCrawlMark y stackMark, IntPtr pPrivHostBinder, Boolean forIntrospection) +242
System.Reflection.RuntimeAssembly.InternalLoad (String assemblyString, Evidence assemblySecurity, StackCrawlMark y stackMark, Boolean forIntrospection) +17 System.Reflection.Assembly.Load (String assemblyString) +35
System.Web.Configuration.CompilationSection.LoadAssemblyHelper (String assemblyName, Boolean starDirective) +122[ConfigurationErrorsException: no se pudo cargar el archivo o ensamblado ''System.Web.Razor, Version = 2.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)]
System.Web.Configuration.CompilationSection.LoadAssemblyHelper (String assemblyName, Boolean starDirective) +12761078
System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory () +503 System.Web.Configuration.AssemblyInfo.get_AssemblyInternal () +142 System.Web.Compilation.BuildManager.GetReferencedAssemblies (CompilationSection compConfig) +334
System.Web.Compilation.BuildManager.CallPreStartInitMethods (String preStartInitListPath) +203
System.Web.Compilation.BuildManager.ExecutePreAppStart () +152
System.Web.Hosting.HostingEnvironment.Initialize (ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +1151[HttpException (0x80004005): no se pudo cargar el archivo o ensamblado ''System.Web.Razor, Version = 2.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)]
System.Web.HttpRuntime.FirstRequestInit (contexto HttpContext) +12881540 System.Web.HttpRuntime.EnsureFirstRequestInit (contexto HttpContext) +159 System.Web.HttpRuntime.ProcessRequestNotificationPrivate (IIS7WorkerRequest wr, HttpContext context) +12722601Información de la versión: Microsoft .NET Framework Version: 4.0.30319; Versión ASP.NET: 4.0.30319.17929
una parte de WebConfig:
<runtime>
<!-- Old asp.net ajax assembly bindings -->
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
</assemblyBinding>
Algunas formas de arreglar esto:
Instale MVC en el servidor web (que no siempre es posible).
En Visual Studio puede configurar dlls para copiar a local en build, consulte el siguiente artículo (tenga en cuenta que MVC dlls ha cambiado ligeramente de nombre pero le da el proceso) http://haacked.com/archive/2008/11/03/ bin-deploy-aspnetmvc.aspx
Copie los dlls apropiados de su GAC en la carpeta bin del sitio umbraco. Para hacerlo, abra "% windir% / Microsoft.NET / assembly / GAC_MSIL" en el explorador y encontrará todos los dlls instalados en el GAC y puede copiar las versiones apropiadas en su proyecto. Esto es similar al método anterior, pero pasa por alto la construcción del proyecto.
En términos de archivos, es probable que necesite algo más que System.Web.Razor.dll; sin embargo, esto funcionará para todos los archivos que faltan.
Ninguna de estas soluciones me ayudó, ya sea porque no puedo instalar nada en el servidor porque prefiero no incluir dlls directamente sin usar Nuget.
La solución que utilicé fue para instalar / reinstalar el paquete nuget llamado Microsoft.AspNet.Razor (Microsoft ASP.Net Razor 2.0.20710)
Si está bajo el control de código fuente, verifique sus cambios, luego elimine toda la carpeta del explorador de Windows, luego obtenga una versión específica del nivel de solución y obtenga la última sobrescritura de todo