2017-06-23 41 views
5

ja stworzyliśmy pakiet podstawowy .net klasy biblioteki i wysłał go do nuget.orgdlaczego .netstandard 1.4 to NetStandard.Library 1.6?

W sekcji Zależności to mówi, że mój projekt zależy .NetStandard 1.4, który jest wyższy niż 1,6 NetStandard.Library

Dlaczego w numerze wersji występuje takie niedopasowanie? Czy .NetStandard i NetStandard.Library nie powinny być takie same? Czy są to różne rzeczy?

tutaj jest mój .csproj

<Project Sdk="Microsoft.NET.Sdk"> 
    <PropertyGroup> 
    <TargetFramework>netstandard1.4</TargetFramework> 
    <PackageVersion>2.0.1</PackageVersion> 
    <AssemblyName>currency</AssemblyName> 
    </PropertyGroup> 
</Project> 

a link do mojego projektu:

https://www.nuget.org/packages/currency/

+0

.NET Standard to tylko zestaw API na papierze, a .NET Standard Library to rzeczywista implementacja takiego API. Ponieważ SDK rozwiąże dla ciebie wersję biblioteki standardowej .NET, nie przejmuj się zbytnio. –

Odpowiedz

5

Znalazłem ciekawą stronę o .NETStandard.Library:

What is the .NETStandard.Library metapackage?

Na tej stronie wiek autor mówi:

Więc nawet jeśli twój projekt jest skierowany do .NET Standard wersja 1.3 (lub multi-targetowanie), nadal możesz korzystać z najnowszej wersji pakietu NETStandard.Library (1.6.1 w tym czasie pisania). Sam pakiet jest wersjonowany przede wszystkim dlatego, że zawiera również różne wsparcie narzędziowe, takie jak lista wersji .NET Standard.


W dokumentacji Microsoftu, znalazłem następujące informacje o zapytanie:

To może wydawać się dziwne, aby kierować netstandard1.3 ale używać wersji NETStandard 1.6.0. Biblioteka. Jest to użyteczny przypadek, ponieważ metapakowanie obsługuje starsze wersje sieciowe. Może się tak zdarzyć, że ustandaryzowałeś w wersji 1.6.0 metapakowania i użyłeś go do wszystkich swoich bibliotek, które są ukierunkowane na różne wersje sieciowe. Przy takim podejściu wystarczy przywrócić bibliotekę NETStandard.Library 1.6.0, a nie wcześniejsze wersje.

Link: Look at .NetStandard

myślę, że będzie kiedykolwiek używać najnowszej wersji .NETStandard.Library, ponieważ jest kompatybilny ze starszymi wersjami .NETStandard i to tylko metapakiet z referencjami oraz zestaw standardowych interfejsów API .Net. Więc nie powinno być problemu, jeśli pakiet korzysta z biblioteki .NETStandard.Library w wersji 1.6.1

Uwaga: Jeśli używasz .NETStandard 2.0 i korzystasz z biblioteki .NETStandard.Library w wersji 1.6.1, nie można praca!


Aktualizacja: Jak svick wzmianki w komentarzach tej odpowiedzi, minimalna wersja .NETStandard.Library jest wersja 1.6.0!

+0

Twój post brzmi tak, jakbyś mógł * zdecydować się na użycie 'NETStandard.Library' wersji 1.3.Ale nie możesz, ta wersja nie istnieje, tylko 1.6.0+. – svick

+0

@svick dziękuję, zaktualizowałem moją odpowiedź. –