System.Web.Mvc 5.2.2.0 compared to version 5.2.3.0 with aspnet_compiler

I'm having trouble turning on compilation of views in Visual Studio. I have a pretty standard ASP.NET MVC 5 application with lots of links. I refer to System.Web.Mvc 5.2.3.0 (the latter at the moment), but compilation seems to have problems with v. 5.2.2.0 vs 5.2.3.0. The excellent AsmSpy tool ( https://github.com/mikehadlow/AsmSpy ) tells me which assemblies reference the version of System.Web.Mvc:

Reference: System.Web.Mvc 5.1.0.0 by Autofac.Integration.Mvc 5.0.0.0 by Glimpse.Mvc5 5.0.0.0 by Microsoft.Web.Mvc 3.0.0.0 by Mindscape.Raygun4Net.Mvc 5.2.3.0 by Myrepo.Web.Common 5.2.3.0 by MyApp 5.2.2.0 by Thinktecture.IdentityModel.Owin.ResourceAuthorization.Mvc 

So, the guilty one is Thinktecture.IdentityModel.Owin.ResourceAuthorization.Mvc. But I added a link to the assembly redirecting to the root web.config of the application, for example:

  <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <!-- lots more --> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" /> </dependentAssembly> <!-- lots more --> </assemblyBinding> </runtime> 

In an attempt to try to understand the essence of the problem, I turned on the diagnostic diagnostics log, which spills out to the north of 260,000 lines of the log, including:

 16> Unified primary reference "System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35". (TaskId:183) 16> Using this version instead of original version "5.1.0.0" in "C:\Users\ErikBrandstadmoen\Source\Repos\myrepo\packages\Autofac.Mvc5.3.3.4\lib\net45\Autofac.Integration.Mvc.dll" because of a binding redirect entry in the file "obj\Debug\MyWeb.csproj.App.config". (TaskId:183) 16> Using this version instead of original version "5.0.0.0" in "C:\Users\ErikBrandstadmoen\Source\Repos\myrepo\packages\Glimpse.Mvc5.1.5.3\lib\net45\Glimpse.Mvc5.dll" because of a binding redirect entry in the file "obj\Debug\MyWeb.csproj.App.config". (TaskId:183) 16> Using this version instead of original version "3.0.0.0" in "C:\Users\ErikBrandstadmoen\Source\Repos\myrepo\packages\Mindscape.Raygun4Net.Mvc.5.1.0\lib\net40\Mindscape.Raygun4Net.Mvc.dll" because of a binding redirect entry in the file "obj\Debug\MyWeb.csproj.App.config". (TaskId:183) 16> Using this version instead of original version "5.2.2.0" in "C:\Users\ErikBrandstadmoen\Source\Repos\myrepo\packages\Thinktecture.IdentityModel.Owin.ResourceAuthorization.Mvc.2.0.0\lib\net45\Thinktecture.IdentityModel.Owin.ResourceAuthorization.Mvc.dll" because of a binding redirect entry in the file "obj\Debug\MyWeb.csproj.App.config". (TaskId:183) 16> Using this version instead of original version "5.0.0.0" in "C:\Users\ErikBrandstadmoen\Source\Repos\myrepo\Web\Common\bin\Debug\Microsoft.Web.Mvc.dll" because of a binding redirect entry in the file "obj\Debug\MyWeb.csproj.App.config". (TaskId:183) 16> Resolved file path is "C:\Users\ErikBrandstadmoen\Source\Repos\myrepo\packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45\System.Web.Mvc.dll". (TaskId:183) 16> Reference found at search path location "{HintPathFromItem}". (TaskId:183) 16> For SearchPath "{CandidateAssemblyFiles}". (TaskId:183) 16> Considered "newrelic\Extensions\NewRelic.Agent.AttributeFilter.dll", but its name "NewRelic.Agent.AttributeFilter" didn't match. (TaskId:183) 16> Considered "newrelic\Extensions\NewRelic.Agent.Configuration.dll", but its name "NewRelic.Agent.Configuration" didn't match. (TaskId:183) 16> Considered "newrelic\Extensions\NewRelic.Agent.Core.dll", but its name "NewRelic.Agent.Core" didn't match. (TaskId:183) 16> Considered "newrelic\Extensions\NewRelic.Agent.LabelsService.dll", but its name "NewRelic.Agent.LabelsService" didn't match. (TaskId:183) 16> Considered "newrelic\Extensions\NewRelic.Agent.LazyMap.dll", but its name "NewRelic.Agent.LazyMap" didn't match. (TaskId:183) 16> Considered "newrelic\Extensions\NewRelic.Collections.dll", but its name "NewRelic.Collections" didn't match. (TaskId:183) 16> Considered "newrelic\Extensions\NewRelic.Core.dll", but its name "NewRelic.Core" didn't match. (TaskId:183) 16> Considered "newrelic\Extensions\NewRelic.Dispatchers.dll", but its name "NewRelic.Dispatchers" didn't match. (TaskId:183) 16> Considered "newrelic\Extensions\NewRelic.Memoization.dll", but its name "NewRelic.Memoization" didn't match. (TaskId:183) 16> Considered "newrelic\Extensions\NewRelic.Providers.CallStack.AsyncLocal.dll", but its name "NewRelic.Providers.CallStack.AsyncLocal" didn't match. (TaskId:183) 16> Considered "newrelic\Extensions\NewRelic.Providers.TransactionContext.Asp.dll", but its name "NewRelic.Providers.TransactionContext.Asp" didn't match. (TaskId:183) 16> Considered "newrelic\Extensions\NewRelic.Providers.TransactionContext.Default.dll", but its name "NewRelic.Providers.TransactionContext.Default" didn't match. (TaskId:183) 16> Considered "newrelic\Extensions\NewRelic.Providers.TransactionContext.Wcf3.dll", but its name "NewRelic.Providers.TransactionContext.Wcf3" didn't match. (TaskId:183) 16> Considered "newrelic\Extensions\NewRelic.Providers.Wrapper.Asp35.dll", but its name "NewRelic.Providers.Wrapper.Asp35" didn't match. (TaskId:183) 16> Considered "newrelic\Extensions\NewRelic.Providers.Wrapper.HttpClient.dll", but its name "NewRelic.Providers.Wrapper.HttpClient" didn't match. (TaskId:183) 16> Considered "newrelic\Extensions\NewRelic.Providers.Wrapper.MongoDb.dll", but its name "NewRelic.Providers.Wrapper.MongoDb" didn't match. (TaskId:183) 16> Considered "newrelic\Extensions\NewRelic.Providers.Wrapper.Mvc3.dll", but its name "NewRelic.Providers.Wrapper.Mvc3" didn't match. (TaskId:183) 16> Considered "newrelic\Extensions\NewRelic.Providers.Wrapper.NServiceBus.dll", but its name "NewRelic.Providers.Wrapper.NServiceBus" didn't match. (TaskId:183) 16> Considered "newrelic\Extensions\NewRelic.Providers.Wrapper.Wcf3.dll", but its name "NewRelic.Providers.Wrapper.Wcf3" didn't match. (TaskId:183) 16> Considered "newrelic\Extensions\NewRelic.Providers.Wrapper.WebApi1.dll", but its name "NewRelic.Providers.Wrapper.WebApi1" didn't match. (TaskId:183) 16> Considered "newrelic\Extensions\NewRelic.Providers.Wrapper.WebApi2.dll", but its name "NewRelic.Providers.Wrapper.WebApi2" didn't match. (TaskId:183) 16> Considered "newrelic\Extensions\NewRelic.Providers.Wrapper.WebOptimization.dll", but its name "NewRelic.Providers.Wrapper.WebOptimization" didn't match. (TaskId:183) 16> Considered "newrelic\Extensions\NewRelic.Providers.Wrapper.WebServices.dll", but its name "NewRelic.Providers.Wrapper.WebServices" didn't match. (TaskId:183) 16> Considered "newrelic\Extensions\NewRelic.Reflection.dll", but its name "NewRelic.Reflection" didn't match. (TaskId:183) 16> Considered "newrelic\Extensions\NewRelic.SystemExtensions.dll", but its name "NewRelic.SystemExtensions" didn't match. (TaskId:183) 16> Considered "newrelic\Extensions\NewRelic.SystemInterfaces.dll", but its name "NewRelic.SystemInterfaces" didn't match. (TaskId:183) 16> Considered "newrelic\Extensions\NewRelic.Testing.Assertions.dll", but its name "NewRelic.Testing.Assertions" didn't match. (TaskId:183) 16> Considered "newrelic\Extensions\NewRelic.Trie.dll", but its name "NewRelic.Trie" didn't match. (TaskId:183) 16> Considered "newrelic\Extensions\NewRelic.TypeInstantiation.dll", but its name "NewRelic.TypeInstantiation" didn't match. (TaskId:183) 16> Considered "newrelic\Extensions\NewRelic.WeakActions.dll", but its name "NewRelic.WeakActions" didn't match. (TaskId:183) 16> Considered "newrelic\NewRelic.Agent.Core.dll", but its name "NewRelic.Agent.Core" didn't match. (TaskId:183) 16> Considered "newrelic\NewRelic.Agent.Extensions.dll", but its name "NewRelic.Agent.Extensions" didn't match. (TaskId:183) 16> Considered "newrelic\NewRelic.Profiler.dll", but its name "NewRelic.Profiler" didn't match. (TaskId:183) 16> Found related file "C:\Users\ErikBrandstadmoen\Source\Repos\myrepo\packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45\System.Web.Mvc.xml". (TaskId:183) 16> The ImageRuntimeVersion for this reference is "v4.0.30319". (TaskId:183) 

BUT, still, when I compile the views using aspnet_compiler.exe, it complains. And no matter where I install the assembly binding redirection (Web.config root applications, Web.config root in the Views folder), aspnet_compiler.exe does not want to respect it. And it seems impossible to get aspnet_compiler.exe to display any information about what it actually does (setting the verbosity level of the log ...)

All I get when compiling the views is a lot of warnings regarding version 5.2.2.0 and version 5.2.3.0 of System.Web.Mvc:

 16>ASPNETCOMPILER : warning CS1702: Assuming assembly reference 'System.Web.Mvc, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' matches 'System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35', you may need to supply runtime policy 16>ASPNETCOMPILER : warning CS1702: Assuming assembly reference 'System.Web.Mvc, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' matches 'System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35', you may need to supply runtime policy 16>ASPNETCOMPILER : warning CS1702: Assuming assembly reference 'System.Web.Mvc, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' matches 'System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35', you may need to supply runtime policy (lots of more lines) 16>Done executing task "AspNetCompiler". (TaskId:234) 16>Done building target "MvcBuildViews" in project "MyWeb.csproj".: (TargetId:376) 16>Target "Build: (TargetId:377)" in file "C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\ErikBrandstadmoen\Source\Repos\myrepo\Web\MyWeb\MyWeb.csproj" (target "Rebuild" depends on it): 16>Done building target "Build" in project "MyWeb.csproj".: (TargetId:377) 16>Target "AfterRebuild: (TargetId:378)" in file "C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\ErikBrandstadmoen\Source\Repos\myrepo\Web\MyWeb\MyWeb.csproj" (target "Rebuild" depends on it): 16>Done building target "AfterRebuild" in project "MyWeb.csproj".: (TargetId:378) 16>Target "Rebuild: (TargetId:379)" in file "C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets" from project "C:\Users\ErikBrandstadmoen\Source\Repos\myrepo\Web\MyWeb\MyWeb.csproj" (entry point): 16>Done building target "Rebuild" in project "MyWeb.csproj".: (TargetId:379) 

Are there any tips on where to continue troubleshooting? I can, of course, just ignore warning CS1702, but I feel like driving with my eyes closed. Any help is appreciated.

+5
source share
2 answers

I had the same problem with the same nuget package where Thinktecture.IdentityModel.Owin.ResourceAuthorization.Mvc depends on System.Web.Mvc Version = 5.2.2.

I solved this installation by installing the required version of MVC and then updating web.config for the project and for the views folder.

What caught me. is an

 <system.web.webPages.razor> <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <pages pageBaseType="System.Web.Mvc.WebViewPage"> <namespaces> <add namespace="System.Web.Mvc" /> <add namespace="System.Web.Mvc.Ajax" /> <add namespace="System.Web.Mvc.Html" /> <add namespace="System.Web.Routing" /> <add namespace="JQueryUIHelpers" /></namespaces> </pages> </system.web.webPages.razor> 

I also had to downgrade the MVC version for this type.

+1
source

I don’t know if this will help or not, but I had the same problem as you did before I noticed that my main "projectname.csproj" set its version of Mvc 5.2.3.0 to private and my "project name " .csproj infrastructure "installed its version in 5.2.2.0. I can only assume that this was the main cause of problems with my version.

This is what my "projectname.csproj" looked like before I changed it ...

 <Reference Include="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <HintPath>..\packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45\System.Web.Mvc.dll</HintPath> <Private>True</Private> </Reference> 

... And this is how it looked after its change ...

 <Reference Include="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <SpecificVersion>False</SpecificVersion> <HintPath>..\packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45\System.Web.Mvc.dll</HintPath> </Reference> 

After that, I rebuilt my solution and debugged my project name. Since then, I have not encountered any problems.

+1
source

Source: https://habr.com/ru/post/1232571/


All Articles