Microsoft.AspNetCore.Mvc.ViewFeatures версия - PullRequest
0 голосов
/ 05 сентября 2018

Я довольно озадачен следующим сообщением об ошибке, которое я нахожу в своих журналах на сервере IIS с момента обновления до asp core 2.1.3:

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

Должен ли я вручную заменить dll Microsoft.AspNetCore.Mvc.ViewFeatures в папке refs в каталоге моего приложения?

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

Мне кажется, я недавно столкнулся с той же проблемой, только с разными пакетами.

Например, @Chris Pratt ответил, короче говоря, я считаю, что у вас есть 2 проекта, JC и RefersToJC. То есть, у 2-го проекта есть зависимость от JC. (Пожалуйста, помогите мне подтвердить это).

Оба они зависят от Microsoft.AspNetCore.Mvc.ViewFeatures. Однако JC указал, что хочет версию 2.1.2.0 . Принимая во внимание, что другой RefersToJC требует версию 2.1.1.0 или просто не указал никакой версии вообще .

Следовательно, внутри RefersToJC.SomeClass строка JC.SomeClass.Something() выдаст ошибку CS1705.

Решение : Откройте Manage Nuget packages... вашего RefersToJC проекта и загрузите Microsoft.AspNetCore.Mvc.ViewFeatures с версией 2.1.2 (даже если у нас есть Microsoft.AspNetCore.App metapackage.)

Да, как-то все испортилось, и свежие проекты (не переходящие со старых версий) просто работают.

0 голосов
/ 05 сентября 2018

Вы получите это, когда один проект ссылается на другой, и оба имеют зависимость от одного и того же пакета NuGet, но разных его версий. Просто решение состоит в том, чтобы понизить один или обновить другой. Выберите версию (вы, вероятно, просто захотите использовать самую высокую версию, поскольку на самом деле нет никакой причины использовать более низкую версию для чего-то вроде ViewFeatures). Затем отредактируйте файлы проекта и измените соответствующую строку PackageReference на эту версию.

Возможно, на самом деле вы можете не зависеть напрямую от этого конкретного пакета, а скорее от метапакета, который его включает, например Microsoft.AspNetCore.App. Однако то же самое относится. Убедитесь, что в обоих проектах этого метапакета используется одна и та же версия.

Последней неудачной возможностью может быть один проект в зависимости от метапакета, в то время как другой напрямую зависит от пакета ViewFeatures, и версия одного не обязательно может фактически совпадать с версией другого. В этом случае вы можете просмотреть метапакет на nuget.org и посмотреть, какая версия отдельного пакета включена в него (он будет указан как зависимость метапакета). Убедитесь, что ваша ссылка на отдельный пакет соответствует.

Короче говоря, это может занять немного времени, но идея в том, что вам нужно получить оба проекта в одной и той же версии этого пакета, если вы хотите сослаться на один из другого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...