Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Следующие элементы PackageVersion не могут указать плавающую версию: PackageName.
Проблема
Проект настроен для использования управления пакетами NuGet Central и <PackageVersion />
определяется элемент, указывающий значение с плавающей версией для атрибута Version
:
<ItemGroup>
<PackageVersion Include="PackageName" Version="1.*" />
</ItemGroup>
По умолчанию <PackageVersion />
элементы не могут указывать плавающие версии.
Централизованное управление пакетами NuGet предоставляет пользователям возможность управлять версиями пакетов в одном расположении, а также детерминированными и безопасными восстановлениями.
Использование с плавающей запятой версий представляет возможность внедрения плохого пакета в сборку после отправки в веб-канал.
Это может привести к ситуации, когда вы не внесли никаких изменений в репозиторий, но вдруг что-то сломалось из-за проблемы в новом пакете, и вам не удастся вернуться в хорошее состояние, не удаляя плавающую версию или принудив новую версию пакета, которая исправлена.
Использование не с плавающей запятой версий означает, что каждое обновление пакета поддерживается фиксацией в репозитории, что упрощает определение того, какое изменение вызвало разрыв и позволяет восстановить фиксацию, чтобы вернуться в хорошее состояние.
Кроме того, при использовании функции транзитивного закрепленияцентрального управления пакетами, использование плавающей версии в качестве переопределения может привести к восстановлению различных проектов в конечном итоге с различными версиями пакета, что должно быть закреплено, таким образом, с обещанием использования централизованно определенной версии.
NuGet рекомендует использовать автоматизацию, например Dependabot , чтобы сохранить версии пакетов up-to-date, которая обеспечивает упрощенный способ обновления версий пакетов при интеграции в существующий рабочий процесс разработчика запроса на вытягивание, автоматическую проверку сборки и тестирование всех, поддерживаемых фиксацией в репозитории.
Решение
- Рекомендуется изменить плавающую версию на диапазон версий, отличный от плавающей с плавающей запятой:
<ItemGroup>
<PackageVersion Include="PackageName" Version="1.0.0" />
</ItemGroup>
- Если это невозможно, или вы хотите использовать плавающие версии с центральным управлением пакетами, это можно сделать, задав свойство MSBuild:
<PropertyGroup>
<CentralPackageFloatingVersionsEnabled>true</CentralPackageFloatingVersionsEnabled>
</PropertyGroup>