редактировать файл nuspec в nupkg

Я хотел бы создать nupkg с семантической версией после процесса ci в TFS. nupkg должен быть таким, как показано ниже.

MSVersioningSample.1.0.7-ci-20170926-184446.nupkg

Но, когда я решил, что это релизная версия. Я хотел бы переименовать nupgk и опубликовать его в канале nuget в качестве версии выпуска.

MSVersioningSample.1.0.7.nupkg

Когда я переименовываю файл nupkg и публикую его, номер его версии остается прежним, и во время публикации возникает конфликт.

Потом я понял. Внутри файла nupkg есть файл .nuspec, и мне нужно изменить номер версии в файле nuspec.

Мой вопрос: как я могу редактировать файл nuspec в nupkg с помощью сценария (powershell)?


person wasabi    schedule 08.09.2017    source источник


Ответы (1)


Кажется, вы хотите использовать предварительные версии nupkg, но удалите предварительную версию, когда она будет готова к выпуску. Вы должны переписать элемент <version> в файле nuspec. Но не так-то просто справиться со всеми ситуациями, например, если ваша сборка создала несколько пакетов, некоторые из которых зависят друг от друга? Теперь вам также нужно обнаружить граф зависимостей и переписать соответствующие элементы.

Чтобы обновить поле версий в файле *.nuspec, вы можете сослаться на этот скрипт powershell в GitHub: Nuspec Auto Update

Другой обходной путь — добавление двух шагов упаковки nuget в процесс сборки. Один пакет с номером -ci, а другой нет.

Затем вам просто нужно убедиться, что только скопируйте пакет «выпуск» в ArtifactStagingDirectory, в котором уже нет сегмента предварительной версии.

Также настройте выпуск так, чтобы он использовал номер сборки в качестве имени выпуска. Незначительная проблема, что это включает число -ci.

person PatrickLu-MSFT    schedule 11.09.2017