Порядок приоритета для пакетов NuGet, которые поддерживают несколько целевых структур - PullRequest
0 голосов
/ 03 марта 2020

У меня есть пакет NuGet, который поддерживает несколько целевых структур net45 и netstandard2.0. Существуют различия в коде для целевых структур (условная компиляция).

Если я ссылаюсь на этот пакет из приложения. NET Framework 4.6.1, он, похоже, выбирает версию net45 вместо * Версия 1006 *, хотя она номинально совместима с обеими.

Какие правила приоритета определяют этот выбор? Будет ли выбор таким же для приложений, созданных для более поздних версий. NET Каркасы (4.7.2, 4.8, ...)?

1 Ответ

1 голос
/ 04 марта 2020

Он выберет самую подходящую целевую инфраструктуру, меньшую или равную целевой структуре вашего приложения, при условии, что у библиотеки есть такая цель.

Если этого не произойдет, то она вернется к нестандартной цели, если один существует.

В противном случае библиотека не совместима.

Это немного расстраивает, что в документах нет более подробной информации об этом, и они не охватывают более сложный сценарий ios (например, net461 приложение, ссылающееся на netstandard2.0 libA, в свою очередь ссылающееся на многоцелевые netstandard2.0,net461 libB - какие рамки разрешены для libB?). Для тех, кто просто должен попробовать и посмотреть.

См. Документы, такие как они, здесь и здесь

...