Что управляет конкретным свойством версии ссылки в пакете NuGet?
У нас есть много библиотек, которые строятся в CI, которые развертывают пререлизы каждый раз, когда они строятся. Другие проекты зависят от них и автоматически обновляют их во время сборки.
Но ссылки задаются с определенной версией = true, что означает, что увеличение номера версии в этих библиотеках DLL приводит к сбою сборки.
Как я могу управлять настройкой свойства?
1 ответ:
Вы не можете изменить поведение NuGet, не изменив его исходный код. NuGet всегда устанавливает SpecificVersion в true при добавлении сборки, отличной от GAC, из Visual Studio.
Вам нужно будет запустить какой-то скрипт post build, чтобы исправить ссылки или вручную изменить их.
Не уверен точно, как вы обновляете проекты на вашем сервере CI. Если вы используете
NuGet.exe update project.csproj, то он обновится до последнего пакета NuGet и не будет устанавливать SpecificVersion в true. Однако приложение командной строки не поддерживает сценарии PowerShell или файлы содержимого, будут обновлены только ссылки. Это также предполагает наличие обновления, в противном случае ссылка не будет изменена.