Andrew Hoefling

Speaker | Mentor | Coder | Leader

Using Conditional Insertion in Azure Pipelines allows a build to insert build tasks depending on parameters. This differs than a conditional task becaues it can remove or add the task to the build task list. This means you can completely customize the build tasks and only show the ones that the build is interested in.

More and more build scenarios using Azure Pipelines require complex customization which have been simplified by the Configuration As Code feature that has been available in Azure DevOps for a couple years now. When making the switch from the GUI to YAML I sturggled quite a bit with build numbers not working the same exact way since you can't customize the Version Number.

In Xamarin.Forms or Xamarin Android your project might get to a point where you run into issues with the java build failing for what appears to be no reason. At first glance the OutOfMemoryException may make no sense at all, but toggling some simple settings will get you back up and running.

Managing project dependencies can be complicated, from handling shared libraries, 3rd party libraries, homebrew libaries and forks of open source libraries. There is a need for just about every project regardless of size to manage these libraries with a Package Manager. Fortunately most 3rd Party Libraries are on NuGet or some other public Package Management feed so we don’t have to manage them. Getting your private packages on your own private NuGet server is now easier then ever and with the tools built into VSTS you can create automated builds that deploy changes to your libraries to that package management server.