Какую сборку из NuGet-пакета возмет msbuild/dotnet?
От: VladCore  
Дата: 11.11.19 14:08
Оценка:
1.
Предположим есть проект .NEt Framework 4.6.1

Есть ссылка на nuget, в котором лежат сборки NetStandard 2.0 (а), и NET Framework 4.6 (б)

Какую сборку возмет msbuild/dotnet? а или б?


2. Аналогичная но более очевидная ситуация (но вдруг?!!!!)

Предположим есть проект .NEt Framework 4.6.1

Есть ссылка на nuget, в котором лежат сборки NetStandard 2.0 (а), и NET Framework 4.6.1 (б)

Какую сборку возмет msbuild/dotnet? а или б?

P.S.
На самом деле все тоже самое непонятно для NET Core тоже.
Re: Сборка .NET Framework в NuGet-пакете
От: Qbit86 Кипр
Дата: 11.11.19 14:31
Оценка:
Здравствуйте, VladCore, Вы писали:

VC>Предположим есть проект .NEt Framework 4.6.1

VC>Есть ссылка на nuget, в котором лежат сборки NetStandard 2.0 (а), и NET Framework 4.6 (б)

VC>Предположим есть проект .NEt Framework 4.6.1

VC>Есть ссылка на nuget, в котором лежат сборки NetStandard 2.0 (а), и NET Framework 4.6.1 (б)

В обоих случаях ожидается, что возьмёт сборку б) .NET Framework.
Глаза у меня добрые, но рубашка — смирительная!
Re[2]: Сборка .NET Framework в NuGet-пакете
От: VladCore  
Дата: 11.11.19 15:02
Оценка:
Здравствуйте, Qbit86, Вы писали:

VC>>Предположим есть проект .NEt Framework 4.6.1

VC>>Есть ссылка на nuget, в котором лежат сборки NetStandard 2.0 (а), и NET Framework 4.6 (б)

VC>>Предположим есть проект .NEt Framework 4.6.1

VC>>Есть ссылка на nuget, в котором лежат сборки NetStandard 2.0 (а), и NET Framework 4.6.1 (б)

Q>В обоих случаях ожидается, что возьмёт сборку б) .NET Framework.


Сорри, 4.6.1 он не полностью соответствует стандарту netstandard 2.0

А 4.7.2 проект какую сборку возмет? В Nuget-пакете есть, предположим, NetStandard 2.0 и net47

4.7.2 — он же весь netstandard 2.0 покрывает без доп пакетов
Re[3]: Сборка .NET Framework в NuGet-пакете
От: Qbit86 Кипр
Дата: 11.11.19 15:18
Оценка: 10 (1)
Здравствуйте, VladCore, Вы писали:

VC>А 4.7.2 проект какую сборку возмет? :xz: В Nuget-пакете есть, предположим, NetStandard 2.0 и net47

VC>4.7.2 — он же весь netstandard 2.0 покрывает без доп пакетов

Тоже ожидается, что .NET Framework-проект возьмёт из NuGet-пакета .NET Framework-сборку той же или меньшей версии — независимо от того, есть ли в этом пакете .NET Standard-сборки.

Если бы в NuGet-пакете не было .NET Framework-сборок подходящей версии, тогда .NET Framework-проект взял бы .NET Standard-сборку.
Глаза у меня добрые, но рубашка — смирительная!
Re: Какую сборку из NuGet-пакета возмет msbuild/dotnet?
От: Ночной Смотрящий Россия  
Дата: 11.11.19 21:38
Оценка: 74 (1)
Здравствуйте, VladCore, Вы писали:

VC>P.S.

VC>На самом деле все тоже самое непонятно для NET Core тоже.

https://stackoverflow.com/questions/49598467/how-to-choose-target-framework-from-nuget-package
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[2]: Это не объясняет массовый таргетинг в популярных пакетах
От: VladCore  
Дата: 18.11.19 21:50
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

VC>>P.S.

VC>>На самом деле все тоже самое непонятно для NET Core тоже.

НС>https://stackoverflow.com/questions/49598467/how-to-choose-target-framework-from-nuget-package


Это не объяснет зачем собирать в один nuget-пакет netstandard таргеты при наличии net и netcoreapp бинариников.

Зачем?
Особенно под старые netstandard-ы младше 2-го

https://github.com/theraot/Theraot/blob/master/Framework.Core/Framework.Core.csproj#L5
https://github.com/rsdn/CodeJam/blob/master/CodeJam.Main/CodeJam.Main.csproj#L12

Сюда специально не поленюсь скопипащу таргеты из theraot.core (в CodeJam аналогичное безобразие)
net20;
net30;
net35;
net40;
net45;
net46;
net47;
net48;
netcoreapp1.0;
netcoreapp1.1;
netcoreapp2.0;
netcoreapp2.1;
netcoreapp2.2;
netcoreapp3.0;
netstandard1.0; - wth?
netstandard1.1; - wth?
netstandard1.2; - wth?
netstandard1.3; - wth?
netstandard1.4; - wth?
netstandard1.5; - wth?
netstandard1.6; - wth?
netstandard2.0;
netstandard2.1


Мне не жалко добавить в нугет и старый netstandard когда это возможно, но хочется понимать когда нибудь оно будет референсится?

Для android и iOS разве netstandard не поддерживается?
Для остальных платформ тоже не нужно?
Зачем тогда?
Re[3]: Зависимости
От: Qbit86 Кипр
Дата: 18.11.19 22:30
Оценка: 18 (2)
Здравствуйте, VladCore, Вы писали:

VC>Это не объяснет зачем собирать в один nuget-пакет netstandard таргеты при наличии net и netcoreapp бинариников.


Чтобы можно было ссылаться на этот пакет из других .NET Standard-библиотек. Если в NuGet-пакете только net***- и netcoreapp***-сборки, то на пакет нельзя сослаться из netstandard***-библиотеки.

VC>Особенно под старые netstandard-ы младше 2-го


Чтобы на этот пакет могли ссылаться чьи-то netstandard1.*-библиотеки.

Проще говоря, ты таргетишь минимально возможную версию netstandard, чтобы расширить аудиторию своей библиотеки и на тех пользователей, которые поддерживают старый netstandard1.* в своих библиотеках.
Глаза у меня добрые, но рубашка — смирительная!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.