Есть ли способ заставить ссылку на проект to.NET стандартный проект для конкретной целевой фреймворк
Я являюсь участником проекта GitHub, и недавно у нас возникли некоторые проблемы с нашей .NET Standard 2.0 проекта установки правильно в .NET Framework 4.5 проекта. Причина этого заключается в том, что (если я правильно понимаю) .NET Standard 2.0 поддерживает минимальную .NET Framework 4.6.1.
Ладно, достаточно честно. Поэтому мы обновили свой .csproj для создания другого вывода фреймворка:
<TargetFrameworks>netstandard2.0;net45</TargetFrameworks>
В нашем тестовом проекте поддерживаемые фреймворки определяются как например:
<TargetFrameworks>netcoreapp2.0;net471;net45</TargetFrameworks>
Однако мы сталкиваемся с проблемой с net471
сборкой, поскольку она, похоже, берет структуру net45
, а не netstandard2.0
. Чтобы заставить это работать, мы должны установить TargetFrameworks
библиотеки классов как таковой:
<TargetFrameworks>netstandard2.0;net471;net45</TargetFrameworks>
Это кажется чрезмерным, поскольку кажется, что .netstandard2.0
должен быть TargetFramework
, который net471
берет, а не net45
цель.
TargetFramework
? Я действительно попробовал следующее В нашем тестируем проект, но вроде бы не получилось:
<ItemGroup Condition="'$(TargetFramework)' != 'net471'">
<ProjectReference Include="....srcExtendedXmlSerializerExtendedXmlSerializer.csproj" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net471'">
<ProjectReference Include="....srcExtendedXmlSerializerExtendedXmlSerializer.csproj">
<TargetFramework>netstandard2.0</TargetFramework>
</ProjectReference>
</ItemGroup>
Заранее благодарю вас за любую помощь, которую вы можете оказать!