publicar net mvc error asp aplicacion asp.net asp.net-mvc-4 iis-7.5 webgrease

asp.net - mvc - publicar aplicacion asp net en iis



La actualización de WebGrease a la versión 1.3.0 causa un error solo en el servidor de producción (2)

Primero, responda a esta pregunta, NO resuelva mi error:

La actualización de WebGrease a la versión 1.3.0 me da error

Tengo el siguiente direccionamiento obligatorio en mi servidor de producción:

<dependentAssembly> <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-1.3.0.0" newVersion="1.3.0.0" /> </dependentAssembly>

Tengo las siguientes DLL en mi servidor de producción que son necesarias para el Microsoft Web Framework de optimización de ASP.NET:

  1. System.Web.Optimization.dll 1.0.0.0 (esto NO es una versión preliminar)
  2. Antlr3.Runtime.dll 3.3.1.7705
  3. Webgrease.dll 1.3.0.0

Estoy teniendo el siguiente error:

Could not load file or assembly ''WebGrease, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'' or one of its dependencies. The located assembly''s manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

Revisé el GAC, newVersion todas las carpetas temporales de ASP.NET, intenté eliminar el atributo newVersion de mi configuración <bindingRedirect> . No estoy seguro de qué le está diciendo a ASP.NET que busque WebGrease 1.0


Finalmente descubrí por qué esto no funcionaba para mí, a pesar de que otros usuarios decían que estaba funcionando para ellos.

Tenía la siguiente redirección de enlace en mi archivo web.config para forzar al ensamblado System.Web.Optimization a usar la versión más nueva en su lugar:

<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-1.3.0.0" newVersion="1.3.0.0" /> </dependentAssembly> </assemblyBinding> </runtime> </configuration>

Era como otros usuarios tenían, pero no funcionó. Luego usé el visor de registro de fusión (Fuslogvw.exe) para descubrir más información y descubrí que el proceso de enlace ni siquiera miraba las instrucciones de redirección.

Finalmente descubrió que no debe haber un espacio de nombres XML en la raíz ... Si elimino lo siguiente de mi elemento <configuration> , funciona: xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"

Además, solo asegúrese de tener el siguiente espacio de nombres XML especificado en el elemento <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> .

¡¡Finalmente!!


Tengo el mismo problema. Tengo una solución con diferentes proyectos dentro. Desinstalé Microsoft.AspNet.Web.Optimization y WebGrease de todos los proyectos, y eliminé manualmente todas las carpetas bin y obj.

Luego, he instalado Microsoft.AspNet.Web.Optimization solo en el proyecto que necesita este paquete.

En este punto, he eliminado todos los archivos de la carpeta de paquetes.

Cuando abrí Visual Studio nuevamente, comencé a reinstalar todos los paquetes desde cero.

Al final hice un git-diff y este fue el resultado:

$ git diff App.config diff --git a/App.config index ceec0aa..8937482 100644 --- a/App.config +++ b/App.config @@ -18,7 +18,7 @@ </dependentAssembly> <dependentAssembly> <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" /> - <bindingRedirect oldVersion="0.0.0.0-1.3.0.0" newVersion="1.3.0.0" /> + <bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" /> </dependentAssembly> </assemblyBinding> </runtime> $ git diff Web.config diff --git a/Web.config b/Web.config index 7287953..f196254 100644 --- a/Web.config +++ b/Web.config @@ -106,7 +106,7 @@ </dependentAssembly> <dependentAssembly> <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" /> - <bindingRedirect oldVersion="0.0.0.0-1.3.0.0" newVersion="1.3.0.0" /> + <bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" /> </dependentAssembly> </assemblyBinding> </runtime> $ git diff myproj.csproj diff --git a/myproj.csproj b/myproj.csproj index 12987d0..a214bf7 100644 --- a/myproj.csproj +++ b/myproj.csproj @@ -24,6 +24,7 @@ </SccAuxPath> <SccProvider> </SccProvider> + <WebGreaseLibPath>../packages/WebGrease.1.5.2/lib</WebGreaseLibPath> </PropertyGroup> <PropertyGroup Condition=" ''$(Configuration)|$(Platform)'' == ''Debug|AnyCPU'' "> <DebugSymbols>true</DebugSymbols> @@ -47,8 +48,8 @@ <WarningLevel>4</WarningLevel> </PropertyGroup> <ItemGroup> - <Reference Include="Antlr3.Runtime, Version=3.3.1.7705, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processo - <HintPath>../packages/WebGrease.1.3.0/lib/Antlr3.Runtime.dll</HintPath> + <Reference Include="Antlr3.Runtime"> + <HintPath>../packages/Antlr.3.4.1.9004/lib/Antlr3.Runtime.dll</HintPath> </Reference> <Reference Include="Kendo.Mvc"> <HintPath>../Dll/kendo/Kendo.Mvc.dll</HintPath> @@ -84,9 +85,8 @@ <Private>True</Private> <HintPath>../packages/Microsoft.AspNet.Mvc.4.0.30506.0/lib/net40/System.Web.Mvc.dll</HintPath> </Reference> - <Reference Include="System.Web.Optimization, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, pr - <SpecificVersion>False</SpecificVersion> - <HintPath>../packages/Microsoft.AspNet.Web.Optimization.1.1.0/lib/net40/System.Web.Optimization.dll</HintPath> + <Reference Include="System.Web.Optimization"> + <HintPath>../packages/Microsoft.AspNet.Web.Optimization.1.1.2/lib/net40/System.Web.Optimization.dll</HintPath> </Reference> <Reference Include="System.Web.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processor <Private>True</Private> @@ -129,9 +129,8 @@ <Private>True</Private> <HintPath>../packages/Microsoft.Net.Http.2.0.20710.0/lib/net40/System.Net.Http.WebRequest.dll</HintPath> </Reference> - <Reference Include="WebGrease, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchite - <SpecificVersion>False</SpecificVersion> - <HintPath>../packages/WebGrease.1.3.0/lib/WebGrease.dll</HintPath> + <Reference Include="WebGrease"> + <HintPath>../packages/WebGrease.1.5.2/lib/WebGrease.dll</HintPath> </Reference> </ItemGroup> <ItemGroup> @@ -760,7 +759,6 @@ <Content Include="Views/Home/Index.cshtml" /> <Content Include="Views/Shared/Error.cshtml" /> <Content Include="Views/Shared/_LoginPartial.cshtml" /> - <Content Include="Views/Shared/_Layout.cshtml" /> <Content Include="Views/Web.config" /> </ItemGroup> <ItemGroup> @@ -800,6 +798,7 @@ <Generator>RazorGenerator</Generator> <LastGenOutput>index1.generated.cs</LastGenOutput> </Content> + <Content Include="Views/Shared/_Layout.cshtml" /> </ItemGroup> <PropertyGroup> <VisualStudioVersion Condition="''$(VisualStudioVersion)'' == ''''">10.0</VisualStudioVersion>

En particular, tanto App.config como Web.config tenían estas diferencias:

<dependentAssembly> <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" /> - <bindingRedirect oldVersion="0.0.0.0-1.3.0.0" newVersion="1.3.0.0" /> + <bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" /> </dependentAssembly> </assemblyBinding>