Вы не можете, если вы зависите от Microsoft.AspNetCore.*
пакетов как абсолютный минимум для поддержки .NET Standard .NET 4.5.
.NET 4.5 - первая версия, включающая System.Runtime
, на которой основан .NET Core. Но когда вы думаете об этом ближе, это тоже бессмысленно. Если вам нужна поддержка ASP.NET Core в вашей библиотеке.
Если ваша библиотека должна запускаться для ASP.NET Core и ASP.NET 4 (т. Е. MVC 5, WebApi 2), тогда вам необходимо будет использовать зависимостей ASP.NET условно и использовать директивы препроцессора #if
.
"frameworks": {
"net20": {
"dependencies": {
"NameOf.AspNetLegacyPackage": "1.2.3"
}
},
"netstandard1.3": {
"dependencies": {
"Microsoft.AspNetCore.WebUtilities" : "1.1.0"
},
"imports": "dnxcore50"
}
}
Я использовал netstandard1.3
как минимум для Microsoft.AspNetCore.WebUtilities
, но в зависимости от других зависимостей может понадобиться пойти выше или ниже.
NameOf.AspNetLegacyPackage
- это имя пакета, который тем функциональным, что и Microsoft.AspNetCore.WebUtilities
который вам нужен, но который работает с .NET Framework 2.0, если таковой имеется. Если нет, вам нужно удалить его и самостоятельно записать функции замены.
Затем в использовании кода
#if NETSTANDARD1_3
// Code or APIs which is only available in netstandard1.3/net4.6
// this includes the Microsoft.AspNetCore.WebUtillities
#else
// Use code or API which runs under .NET Framework 2.0
#endif
С другой стороны, если вы собираетесь отказаться от поддержки .NET Framework 2.0 и перейти на 4.5.1, вы можете продолжать использовать Microsoft.AspNetCore.WebUtillities
(см NuGet page для зависимостей) его в обоих
"dependencies": {
"Microsoft.AspNetCore.WebUtilities" : "1.1.0"
},
"frameworks": {
"net451": {
},
"netstandard1.3": {
"imports": "dnxcore50"
}
}
Вопрос в том, зачем нужна поддержка .NET Framework 2.0, если вы хотите использовать пакет с минимальным требованием 4.5.1/netstandard 1.3 (= .NET Framework 4.6)? Вы хотите использовать его с устаревшим ASP.NET 4? Если нет, нет причин для таргетинга на этот низкий уровень, если он зависит от ASP.NET Core, поскольку ядро ASP.NET не будет работать ни на чем ниже 4.5 или 4.5.1 – Tseng