Code

Versioning and publishing NuGet packages automatically using Azure DevOps Pipelines

Say you’re working on some dotnet projects that you would like to share with the world. Or that you would like to share with other teams in your company. Or your project has multiple git repos and the output of one is the input of another. Creating a NuGet package is an excellent way to zip up and redistribute your build output, but there are a few details about versioning to sort out before that process is streamlined and effortless.

For goals – we’d like new NuGet packages as often as every single time a change is merged. It’d also be ideal if every single package had a unique version number that is related to the build which produced it.

Continue reading

Code

Producing a Zip or Tarball when building a .NET Core console app

There’s a .NET Core console app I’m working on that will need to be published a few different ways. The simplest way to share a downloadable app is in a self-contained tarball (.tar.gz extension) or zip file. Eventually package managers like Chocolatey and rpm/deb files will be needed, but a downloadable, versioned archive file is good enough to get started.

First I did a quick search to see who has solved this problem already. :). One solution I found was qmfrederik/dotnet-packaging on GitHub that looked promising.  It seems like early days, currently version 0.1.45, but it’s published on NuGet under the MIT license so that’s good enough to use as a build tool.

All told – it was quick and easy to integrate – though in my case I needed to push the tool a little to get the results I was looking for. In this post I’ll walk you through that.

Continue reading