Как заставить NuGet pack не перезаписывать существующую версию

#nuget

#nuget

Вопрос:

При создании пакета NuGet в выходной каталог я не хочу, чтобы он перезаписывал существующую версию

Существующая команда:

 ".nugetnuget.exe" pack "some.csproj" -output "c:~packages"
  

Я просмотрел документацию и, похоже, не могу найти переключатель, который это делает. Я пытался использовать a if exists "c:~packagessome.nupkg" exit 1 , но проблема в том, что у меня нет доступа к номеру версии в этом контексте, поэтому я не могу предсказуемо предоставить версию для проверки

Ответ №1:

В настоящее время это невозможно с помощью NuGet.exe .

Варианты:

  1. Измените исходный код NuGet, чтобы разрешить дополнительную опцию командной строки для поддержки отказа от перезаписи существующего пакета NuGet, если он существует. PackCommand может быть изменен для поддержки этого.
  2. Напишите утилиту для создания правильной версии пакета, затем проверьте, существует ли пакет перед запуском NuGet.exe . Информация о версии пакета считывается из атрибута AssemblyInformationalVersionAttribute, взятого из выходной сборки проекта, если вы используете nuget pack projectfile.

Комментарии:

1. Прошло несколько лет с тех пор, как был дан этот ответ. Это все еще положение вещей? Или теперь можно не перезаписывать файлы .nupkg, если они уже существуют?

2. Насколько я вижу, все то же самое. Кажется, что код по-прежнему удаляет существующий файл .