一旦处于发布候选版本(例如 4.5.0-RC)状态的已发布 nuget 包通过了所有验证测试,我们希望将其版本更改为 v.4.5.0 等发布版本,而无需从源代码。
它的 RC 版本,是这样创建的:
dotnet publish -c Release -o out --no-restore
dotnet pack --configuration Release --no-build --output nupkgs \p:PackageVersion=4.5.0-RC
dotnet nuget push nupkgs/org.package_one.4.5.0-RC.nupkg --api-key xxx --source "github"
那么,有什么办法
所以这就是我最终设法做的:
Step 1 - ADD SOURCES
dotnet nuget add source -u <username> -p <pat> --store-password-in-clear-text --name github "https://nuget.pkg.github.com/<org>/index.json"
nuget sources add -Name "github" -Source "https://nuget.pkg.github.com/<org>/index.json" -username "<username>" -password "<pat>"
Step 2 - DOWNLOAD THE PACKAGE
nuget install <package-name> -OutputDirectory ./download -Version "1.0.1-1.1.0-rc-1" -Source https://nuget.pkg.github.com/<org>/index.json -DependencyVersion Ignore
Step 3 - CHANGE DIR
cd ./download/<package-name>.1.0.1-1.1.0-rc-1
Step 4 - UNZIP IT INTO A DIR
unzip <package-name>.nupkg -d repackage
Step 5 - MAKE IT EDITABLE
chmod 777 repackage/<package-name>.nuspec
STEP 6 - CHANGE THE VERSION
sed -i -e 's/\(<version>\).*\(<\/version>\)/<version>1.0.1-1.1.0<\/version>/g' repackage/<package-name>.nuspec
STEP - 7 REVERT PERMISSIONS CHANGES
chmod 000 repackage/<package-name>.nuspec
STEP - 8 ZIP IT BACK
zip -r -j <package-name>.1.0.1-1.1.0.nupkg repackage/*
STEP - 9 PUSH THE NEW PACKAGE
dotnet nuget push <package-name>.1.0.1-1.1.0.nupkg --source "github" --api-key <pat>