NuGetPushTool 1.0.0-alpha
See the version list below for details.
dotnet tool install --global NuGetPushTool --version 1.0.0-alpha
dotnet new tool-manifest # if you are setting up this repo dotnet tool install --local NuGetPushTool --version 1.0.0-alpha
#tool dotnet:?package=NuGetPushTool&version=1.0.0-alpha&prerelease
nuke :add-package NuGetPushTool --version 1.0.0-alpha
Problem Statement
I've not found a really easy way to push updated packages to NuGet.org. You can of course follow Microsoft's own guidance. This is a bit complicated IMO because you need to have the package filename and your API key handy. You can wrap these in a batch file, but there's too much admin here.
I've used CI solutions like AppVeyor successfully, but I find AppVeyor kind of hard to setup. It has a ton of settings -- and to me therefore a discoverability problem. Although I've gotten it to work for some things, I've also found myself unable to get other projects working, and I couldn't figure out why. I've ended up doing it manually through NuGet.org's manual upload UI. I got tired of doing it manually, so I wanted to take a fresh look automating it in a console app. I'd like to be able to navigate to a package build directory and enter a command like this:
nugetpush
The program should find the packages in the current directory along with your API key, which you've placed in a single, defined location out of source control (much like Sleet does).
Code Tour
- Options defines available command line options
- Program.cs shows the high-level flow
- Program_methods.cs has the low-level implementation
Remarks
I had a fair bit of ChatGPT help. See a couple convos I had:
- this
- and this This didn't give me fully working solutions, but it did give a lot of useful nudges and ideas.
Also, after some reflection, I'm not sure I want to use the Post Build event to trigger a NuGet push because -- as it is now -- it doesn't run any tests. That's a nice thing about CI tools like AppVeyor -- they run your tests before pushing packages.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
This package has no dependencies.
Version | Downloads | Last updated |
---|---|---|
1.0.3 | 222 | 12/29/2023 |
1.0.2 | 178 | 12/28/2023 |
1.0.0-alpha | 164 | 12/28/2023 |