2015-09-29 177 views
5

我打開Visual Studio中的視圖編譯時出現問題。我有一個相當標準的ASP.NET MVC 5應用程序,有很多引用。我引用了System.Web.Mvc 5.2.3.0(最新的截至目前),但編譯似乎在v 5.2.2.0 vs 5.2.3.0上有問題。優秀的工具AsmSpy(https://github.com/mikehadlow/AsmSpy)告訴我該組件的參考哪個版本System.Web.Mvc的:System.Web.Mvc 5.2.2.0與5.2.3.0版本問題與aspnet_compiler

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 

所以,有罪的是Thinktecture.IdentityModel.Owin.ResourceAuthorization.Mvc。但是,我增加了一個程序集綁定重定向到應用程序的根web.config,像這樣:

<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> 

在努力,試圖找到問題的底部,我已經打開了診斷構建日誌

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) 

,但仍然,當我編譯使用aspnet_compiler.exe的意見,它抱怨:,其中26萬線的日誌,其中包括北吐出來。無論我在哪裏放置程序集綁定重定向(應用程序的根Web.config,視圖文件夾中的Web.config),aspnet_compiler.exe都不希望尊重它。並且,似乎無法讓aspnet_compiler.exe輸出任何關於它實際正在做什麼(沒有日誌詳細級別設置...)

我編譯視圖時得到的所有信息,有很多關於版本的警告5.2.2.0 vs System.Web.Mvc 5.2.3.0版本:

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) 

有沒有人有任何線索,在哪裏繼續排除故障?我當然可以忽略CS1702的警告,但我覺得就像駕駛我的眼睛半閉。任何幫助表示讚賞。

+0

嘗試在web.config的Compilation標籤中添加所需的程序集版本。 ' – vendettamit

+0

如果你指的是'Web.config'在瀏覽文件夾時,已經有... –

+0

和什麼有關主的web.config?你有嘗試過嗎? –

回答

1

我剛纔有相同的問題與Thinktecture.IdentityModel.Owin.ResourceAuthorization.Mvc依賴於System.Web.Mvc版本= 5.2.2相同nuget包。

我解決了這個問題,我安裝了所需的MVC版本,然後更新了項目和視圖文件夾的web.config。

讓我失望的事情。是

<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> 

我不得不降級該類型的MVC版本。

+0

因此,基本上,您已將MVC降級到5.2.2以滿足Thinktecture.IdentityModel.Owin.ResourceAuthorization.Mvc的依賴性?但是,這不應該是必要的,應該嗎?這不是什麼程序集綁定重定向? –

+0

有一個問題,關於這個@ https://github.com/IdentityModel/Thinktecture.IdentityModel/issues/149 – juarola

+0

最近我有同樣的問題,終於解決了這個問題,檢查[我的stackoverlow解決方案(HTTP://計算器。 COM /問題/ 36125730 /剃刀意見出現的警告 - cs1702-後升級到微軟ASPNET-MVC-版) – rekna

1

我不知道這是否會有所幫助,但我遇到了同樣的問題,因爲我發現我的主要「projectname.csproj」已將其版本Mvc 5.2.3.0設置爲private,我的「projectname .infrastructure.csproj「已將其版本設置爲5.2.2.0。我只能假設這是我版本問題的主要原因。

這就是我的「projectname.csproj」看起來像之前我改變了它......

<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> 

...這是個什麼樣子改變之後...

<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> 

完成後,我重建了我的解決方案並調試了我的項目名稱。從那以後,我沒有遇到任何問題。

相關問題