Что определяет, какая версия библиотек .NET Core SDK загружена? - PullRequest
0 голосов
/ 05 сентября 2018

Наш проект настроен на использование версии 2.1.0 ядра asp.net. Однако отладчик показывает, что загружается версия 2.1.1 сборок sdk. Например

Загруженная сборка 'C: \ Program Файлы \ DotNet \ Shared \ Microsoft.NETCore.App \ 2.1.1 \ System.Private.CoreLib.dll»

dotnet - версия возвращает 2.1.300 (что соответствует 2.1.0 в соответствии с [https://www.microsoft.com/net/download/dotnet-core/2.1].

SDK с самой высокой версией на компьютере - C: \ Program Files \ dotnet \ sdk \ 2.1.300.

В каталоге dotnet / shared отображаются исправные подкаталоги для 2.1.0 и 2.1.1 в Microsoft.AspNetCore.All, Microsoft.AspNetCore.App и Microsoft.NetCoreApp.

В проекте нет интересных ссылок на строку 2.1.1.

SDK проекта:

В реестре есть ссылки (их цель не ясна) на 2.1.1 SDK. (Это лучший претендент, которого я могу найти для объяснения вместе с dotnet info Host, ниже).

dotnet —info shows

Хост (полезно для поддержки):
Версия: 2.1.1
Совершить: 6985b9f684

Интересно, откуда это.

Не удивительно, что большинство болтовни по этому поводу рекомендовали перейти с v2.1.0 на 2.1.1. Однако было бы полезно узнать, что происходит.

Проект на 2.1.0 по историческим причинам. Мы берем на себя некоторые свободы с некоторыми зависимостями .NET Framework, поэтому изменение версий - это область, которую следует остерегаться. Но прежде чем мы неизбежно перейдем на 2.1.3 (или что бы то ни было последним), было бы хорошо, чтобы поцарапать этот зуд.

Вопрос более чем академический. При изменении страниц бритвы во время работы сервера появляется следующая ошибка. Я предполагаю / надеюсь, что это связано с вышеизложенным. Страницы обслуживаются непосредственно Kestrel.

Тип RazorViewAttribute существует в обоих 'Microsoft.AspNetCore.Mvc.Razor, версия = 2.1.0.0, культура = нейтральная, PublicKeyToken = adb9793829ddae60 'и' Microsoft.AspNetCore.Mvc.Razor, Версия = 2.1.1.0, Культура = нейтральная, PublicKeyToken = adb9793829ddae60 '

1 Ответ

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

.NET Core приложения запускаются в одном из двух режимов, зависящих от каркаса или автономных. Ваше приложение работает в зависимом от фреймворка режиме, что означает, что политика .NET Core по перемотке поднимает ваше приложение до 2.1.1, потому что это самая высокая версия 2.1. *. Смотри https://docs.microsoft.com/en-us/dotnet/core/versions/selection#framework-dependent-apps-roll-forward.

Кроме того, я рекомендую взглянуть на этот пост в блоге, в котором более подробно рассматривается связь PackageReference с Microsoft.AspNetCore.App и общей платформой, на которой он работает. https://natemcmaster.com/blog/2018/08/29/netcore-primitives-2/

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