Проблема ссылки на проект .NET5 в библиотеке генераторов источников

#c# #.net

Вопрос:

У меня есть библиотека генератора исходных текстов, и мне нужно ссылаться на нее в библиотеке .NET5. Проблема в том, что генераторы исходных текстов, по-видимому, по какой-то причине должны содержаться в библиотеках .NETstandard 2.0, и внутри невозможно ссылаться на проекты .NET5 .Проекты NETstandard. Проект .NET5-это библиотека, которая содержит некоторые модели для приложения Blazor, она содержит некоторые коды, такие как атрибуты тегов для форм проверки, которые просто не будут работать, если я преобразовал проект в .NETstandard. Есть ли какие-либо возможные обходные пути для этого?

Ответ №1:

Мне удалось сделать это вот так.

Многоцелевой проект .NET 5 (обратите внимание: это целевая работа)

  <TargetFrameworks>net5.0;netstandard2.0</TargetFrameworks>
 

Используйте директивы препроцессора, чтобы избежать ошибок в тех частях кода, для которых требуется .NET 5

 #if NET5_0
        [Range(1, int.MaxValue, ErrorMessage = "You have to insert a valid price")]
#endif
 

Вероятно, вы можете поступить таким образом в любом конкретном сценарии, где вам нужно ссылаться на проект .NET 5 или .NET Core внутри стандартного проекта .NET.