Почему библиотека классов пользовательского интерфейса Razor построена как .NET Standard, а не в .Net core

#c# #asp.net-mvc #asp.net-core #razor #.net-core

#c# #asp.net-mvc #asp.net-ядро #бритва #.net-ядро

Вопрос:

Я создал библиотеку классов razor в a .Приложение Net core. библиотека, созданная как .NET Standard, и основной веб-проект, а также другие библиотеки классов, созданные как .Net core 2.2, когда я пытаюсь добавить ссылку на свою библиотеку классов razor, я получаю эту ошибку:

проект несовместим с Net standard 2.0

Я изменил целевую структуру в моей библиотеке классов razor с [netstandard2.0] :

введите описание изображения здесь

в [netcoreapp2.2]:

введите описание изображения здесь

и все работает нормально

Я это знаю.Net standard позволяет использовать библиотеку классов razor для таргетинга .Приложения Net core и .Приложения Net core framework, но я также знаю, что библиотека классов Razor является особенностью .Сетевое ядро 2.1

Вопрос: Мне нужно знать, почему библиотека классов razor построена как .NET Standard, а не in .Net core и должен ли я изменить все свои библиотеки классов на .Net core 2, чтобы иметь возможность добавлять.Библиотека классов Net core в качестве ссылки ?

Комментарии:

1. .NET Standard означает, что его можно использовать в .NET Core, .NET Framework и, возможно, Mono. Это было бы не так, если бы оно было предназначено только для ядра.

2. @ckuri но почему Microsoft включает эту функцию в . Net core ?

3. ЧЕЛОВЕК!!! Спасибо, что подсказали мне эту информацию об изменении targetFramework вручную!!!! Я потерял целый день, пытаясь выполнить это.

Ответ №1:

ASP.NET Core 2. * также работает на платформе .NET Framework, поэтому вам потребуется стандартная библиотека .NET для использования пользовательского интерфейса Razor как в приложениях, размещенных на .NET Core, так и в .NET Framework, поэтому имеет смысл использовать шаблон по умолчанию для работы в обоих сценариях.

Как ASP.NET Core 3 больше не будет работать в .NET Framework, это поведение может измениться. Но предлагаемое значение по умолчанию для «библиотек» в настоящее время является стандартом .NET, поэтому имеет смысл использовать шаблон библиотеки пользовательского интерфейса Razor.