自从更新到asp core 2.1.3以来,我在IIS服务器上的日志中发现以下错误消息令我感到困惑:
fail: Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[1]
An unhandled exception has occurred while executing the request.
Microsoft.AspNetCore.Mvc.Razor.Compilation.CompilationFailedException: One or more compilation failures occurred:
error CS1705: Assembly 'JC' with identity 'JC, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' uses 'Microsoft.AspNetCore.Mvc.ViewFeatures, Version=2.1.2.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' which has a higher version than referenced assembly 'Microsoft.AspNetCore.Mvc.ViewFeatures' with identity 'Microsoft.AspNetCore.Mvc.ViewFeatures, Version=2.1.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'
at Microsoft.AspNetCore.Mvc.Razor.Internal.RazorViewCompiler.CompileAndEmit(RazorCodeDocument codeDocument, String generatedCode)
at Microsoft.AspNetCore.Mvc.Razor.Internal.RazorViewCompiler.CompileAndEmit(String relativePath)
at Microsoft.AspNetCore.Mvc.Razor.Internal.RazorViewCompiler.OnCacheMiss(String normalizedPath)
首先,因为它似乎只在某些页面上发生-看起来像形式,其次,因为我不确定修复它的适当方法。我没有安装最新的托管包https://github.com/dotnet/core/blob/master/release-notes/2.1/2.1.3/2.1.3.md
我应该手动替换DLLMicrosoft.AspNetCore.Mvc.ViewFeatures
中refs
的文件夹在我的应用程序目录?
当一个项目引用另一个项目并且两个项目都依赖于相同的NuGet包,但版本不同时,您会得到此信息。简单来说,解决方案是降级一个或升级另一个。选择一个版本(您可能只想使用最高版本,因为实际上没有任何理由将较低版本用于ViewFeatures
)。然后,编辑您的项目文件,并将相关PackageReference
行更改为该版本。
有可能,您实际上可能并不直接依赖于此特定程序包,而是包括它的元程序包,例如Microsoft.AspNetCore.App
。但是,同样的事情也适用。确保该meta包的两个项目都使用相同的版本。
最终不幸的可能性可能是一个项目依赖于meta包,而另一个项目ViewFeatures
直接依赖于该包,而一个项目的版本实际上不一定与另一个项目的版本一致。在这种情况下,您可以在nuget.org上查看meta软件包,并查看其中包含的单个软件包的版本(它将列为meta软件包的依赖项)。确保您对单个包装的引用匹配。
总而言之,这可能需要一些工作量,但其想法是,如果要相互引用一个项目,则需要使两个项目都使用此程序包的相同版本。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句