A collegae contacted me today with the following question; his builds started to fail suddenly with the following error:
##[error]C:\Program Files\dotnet\sdk\6.0.101\Microsoft.Common.CurrentVersion.targets(5100,5): Error MSB3030: Could not copy the file "StaticWebAssets.xml" because it was not found.
He was wondering if something was changed on the build server and indeed he was right; we recently installed the .NET 6 SDK on the build server.
As you can see in the error message, the project was built using the .NET 6 SDK.
To fix the error we provided a short and long term solution.
The short term solution
The short term solution was triggering a clean solution before building the project. This will remove all remaining build artifacts and guarantees a clean slate.
To achieve this in Azure DevOps using the Classic pipeline:
- Go to your Build pipeline
- Select the Get Sources Tab
- Set the Clean value to true
- Save the pipeline and run the build
Remark: This also fixes the problem in Visual Studio, do a Clean solution before triggering a build.
If you are using the yaml pipelines, you can set this at the workspace level:
The long term solution
To avoid this problem in the future, you can define the SDK version that should be used through a global.json file:
You can create a new global.json file in the current directory by executing the dotnet new command, similar to the following example:
dotnet new globaljson --sdk-version 3.1