The MSBuild project SDK is used to make sure the PackageReference is used instead of packages.config.
The repository may content a lot of projects and solutions. You want to make sure all projects are used PackageReference format to manage NuGet dependencies, e.g. to use restore via MSBuild or manage NuGet dependencies in one place, etc.
The Build.NoPackagesConfig
SDK is pretty simple. If a project includes packages.config
file it fails the build.
The best choose is add Import
directive into Directory.Build.targets. It allows you import the SDK`s targets into all existing project files under scope of the Directory.Build.targets
.
Directory.Build.targets
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="Sdk.targets" Sdk="Build.NoPackagesConfig" Version="1.0.0" />
</Project>
If you want to skip checking for a particular project you may add SkipPackagesConfigUsageChecking
property to the project.
SampleProject.csproj
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
...
<PropertyGroup>
<SkipPackagesConfigUsageChecking>true</SkipPackagesConfigUsageChecking>
</PropertyGroup>
...
</Project>