Как плавно обновить targetFramework для пакета NuGet

У меня есть пакет NuGet, который в настоящее время предназначен для .NET 4.5. Вместо этого следующая версия будет нацелена на .NET 4.5.2. Я не заинтересован в поддержке обеих версий фреймворка (эти пакеты используются только для внутреннего использования), но я хочу, чтобы потребители поняли, что им нужно ориентироваться на 4.5.2. Прямо сейчас кажется, что NuGet позволит проекту 4.5 установить мой пакет, но это будет бесполезно (поскольку нет DLL для установки для net45).

Мой вопрос: что я могу сделать, чтобы улучшить этот опыт? В идеале я бы хотел, чтобы установка не удалась, если targetFramework неверен. За исключением этого, я бы согласился на что-то вроде сообщения об ошибке.


person ChaseMedallion    schedule 11.04.2016    source источник
comment
Вы пытались добавить сборку в каталог lib\net452, чтобы она устанавливалась только в проект, предназначенный для NET 4.5.2?   -  person Matt Ward    schedule 11.04.2016
comment
@MattWard это то, что он делает по умолчанию. Однако, когда я устанавливаю этот пакет в проекте 4.5, он не жалуется; это просто молча без операций.   -  person ChaseMedallion    schedule 11.04.2016
comment
Это похоже на ошибку nuget. Я бы не ожидал, что nuget позволит это.   -  person Matt Ward    schedule 12.04.2016


Ответы (1)


Для этого вам нужно убедиться, что все в вашем пакете нацелено на новую версию. Затем NuGet завершит установку с этим сообщением:

Не удалось установить пакет «XXX». Вы пытаетесь установить этот пакет в проект, предназначенный для .NETFramework, Version = v4.5, но пакет не содержит ссылок на сборки или файлов содержимого, совместимых с этой платформой. Для получения дополнительной информации свяжитесь с автором пакета

Моя проблема заключалась в том, что даже если моя DLL была нацелена на net452, у меня были другие элементы в моем файле nuspec (например, файлы содержимого), которые по-прежнему нацелены на net45. NuGet интерпретирует это как то, что мой пакет является многоцелевым, и, таким образом, позволяет продолжить установку в проекте .NET 4.5 (молча пропуская шаг добавления ссылки на DLL).

person ChaseMedallion    schedule 13.04.2016