自从更新到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)
Run Code Online (Sandbox Code Playgroud)
首先,因为它似乎只发生在某些页面上-看起来像形式,其次,因为我不确定修复它的适当方法。我没有安装最新的托管包 https://github.com/dotnet/core/blob/master/release-notes/2.1/2.1.3/2.1.3.md
我应该手动替换DLL Microsoft.AspNetCore.Mvc.ViewFeatures中refs的文件夹在我的应用程序目录?
当一个项目引用另一个项目并且两个项目都依赖于相同的NuGet包,但版本不同时,您会得到此信息。简单来说,解决方案是降级一个或升级另一个。选择一个版本(您可能只想使用最高版本,因为实际上没有任何理由将较低版本用于ViewFeatures)。然后,编辑您的项目文件,并将相关PackageReference行更改为该版本。
有可能,您实际上可能并不直接依赖于此特定程序包,而是包括它的元程序包,例如Microsoft.AspNetCore.App。但是,同样的事情也适用。确保该meta包的两个项目都使用相同的版本。
最终不幸的可能是一个项目依赖于meta包,而另一个项目ViewFeatures直接依赖于该包,并且一个版本可能不一定与另一个版本实际上一致。在这种情况下,您可以在nuget.org上查看meta软件包,并查看其中包含的单个软件包的版本(它将列为meta软件包的依赖项)。确保您对单个包装的引用匹配。
总而言之,这可能需要一些工作量,但其想法是,如果要相互引用一个项目,则需要使两个项目都使用此程序包的相同版本。
| 归档时间: |
|
| 查看次数: |
2053 次 |
| 最近记录: |