Skip to content

DevOps

How to Fix "Error NETSDK1005 Assets File project.assets.json Doesn't Have a Target for netstandard2.0"

After updating Visual Studio from 16.7.x to 16.8.2 on our Azure DevOps build server, I got this error message:

##[error]C:\Program Files\dotnet\sdk\5.0.100\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(241,5): 
Error NETSDK1005: 
Assets file c:\agent\_work\***\obj\project.assets.json 
doesnt have a target for netstandard2.0. Ensure that 
restore has run and that you have included netstandard2.0 
in the TargetFrameworks for your project.

How to Restore an Azure *.BACPAC File to Your Local SQL Server

As part of our build and deploy job in the user group project we create a backup of our Azure database before we run any data migrations. If something goes wrong, we do not lose any data and can restore our cloud database to a known good state.

It would be a great opportunity to take this backup file and restore our database to the local SQL Server on our developer machines. Unfortunately, the backup tool creates a *.bacpac file and not a *.bak. Restoring a *.bacpac file needs a few additional steps and, most importantly, a different entry point in the SQL Server Management Studio to start the restore process.

The Mysterious Performance Problem of an Azure DevOps Build Agent

Last week I run into the strangest problem with Azure DevOps since we started using it in 2015. From one day to the next, one of our local build servers took massively more time to do its work. Build steps that took 30 seconds now run for 10 minutes, some even for more than an hour.

Nothing had changed in the application or in our environment, but now we had an unusable situation. I first checked status.dev.azure.com to see if there was a known problem. All services where up and running, no news on Twitter and Google only showed problems like mine from years ago.

How to Fix Missing NuGet Packages in Azure DevOps

Last week we run into a strange problem with our build server. We use Azure DevOps with a local build machine. Everything worked as expected on Monday, yet on Tuesday without any changes on our part the CI job failed with this problem:

WARNING: Unable to find version '2.7.1' of package 'Serilog'. WARNING: Unable to find version '1.50.5' of package 'Dapper'. ...

How to Snapshot Your Windows Container in Docker

Saving the state of a container in Docker is an anti-pattern. You should create your containers in a way that you can throw them away and start with a new one. However, there are some use-cases in which a snapshot of your current container is of great help.

One such use-case is creating a snapshot of your database container for integration testing. Instead of creating a fresh database from scratch and adding the seed data before every test run, I could do that once and reuse this known good starting point. This will save a lot of time and I get the feedback of my tests faster.

Creating Let’s Encrypt Certificates on Windows with Win-Acme

Let’s Encrypt offers free SSL certificates to protect the traffic between your website and your visitors. Earlier this year I wrote about the hoops you need to jump through to use those certificates on Azure. This post shows you a way to use Let’s Encrypt certificates on your on-premises servers.

The objective of Let’s Encrypt and the ACME protocol is to make it possible to set up an HTTPS server and have it automatically obtain a browser-trusted certificate, without any human intervention. This is accomplished by running a certificate management agent on the web server.

The Mysterious Error in IIS When You Run an HTTP Site and Activate SNI

A few weeks ago, we run into a strange problem. We were in the middle of our Let’s Encrypt rollout, in which we create a dedicated certificate for each of our domains. Since we run multiple domains on a single web server with only one IP address, we need to activate SNI (Server Name Indication). That worked on all our servers - expect one. That server gave us this useless error page:

A system error has occurred. Try again and contact the system administrator.