Microsoft will release previews of .NET 6 regularly until the final version on Monday, November 8, 2021.
- Download .NET 6.0 SDK
- November 8, 2021: Announcing .NET 6.0 — The Fastest .NET Yet
- October 12, 2021: Announcing .NET 6 Release Candidate 2
- September 14, 2021: Announcing .NET 6 Release Candidate 1
- August 10, 2021: Announcing .NET 6 Preview 7
- July 14, 2021: Announcing .NET 6 Preview 6
- June 17, 2021: Announcing .NET 6 Preview 5
- May 25, 2021: Announcing .NET 6 Preview 4
- April 8, 2021: Announcing .NET 6 Preview 3
- March 11, 2021: Announcing .NET 6 Preview 2
- February 17, 2021: Announcing .NET 6 Preview 1
After downloading and installing .NET 6.0 SDK, follow the step-by-step instructions in the book and they should work as expected since the project file will automatically reference .NET 6.0 as the target framework.
However, with .NET 6 Preview 7 and later, the default project template for console apps has changed. To retain the existing behaviour, when creating a console app, use the following command that tells the SDK to use the .NET 5.0 template:
dotnet new console -f net5.0
Then manually change the target framework from 5 to 6. You do this in the same way as you upgrade a project from the GitHub repo.
To upgrade a project in the GitHub repository from .NET 5.0 to .NET 6.0 just requires a target framework change in your project file.
Change this:
<TargetFramework>net5.0</TargetFramework>
To this:
<TargetFramework>net6.0</TargetFramework>
For projects that reference additional NuGet packages, use the latest NuGet package version, as shown in the rest of this page, instead of the version given in the book. You can search for the correct NuGet package version numbers yourself at the following link: https://www.nuget.org
For the Instrumenting
project, the additional referenced NuGet packages should use the .NET 6.0 versions, as shown in the following markup:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Configuration" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="6.0.0" />
</ItemGroup>
</Project>
For the CalculatorLibUnitTests
project, the additional referenced NuGet packages for unit testing can use the latest versions, as shown in the following markup:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
<PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3" />
<PackageReference Include="coverlet.collector" Version="3.1.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference
Include="..\CalculatorLib\CalculatorLib.csproj" />
</ItemGroup>
</Project>
For the WorkingWithEFCore
project, the additional referenced NuGet packages should use the .NET 6.0 versions, as shown in the following markup:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="6.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Proxies" Version="6.0.0" />
</ItemGroup>
</Project>
For the LinqWithEFCore
and Exercise02
projects, the additional referenced NuGet package should use the .NET 6.0 version, as shown in the following markup:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="6.0.0" />
</ItemGroup>
</Project>
For the NorthwindContextLib
project, the referenced NuGet package for SQLite should use the .NET 6.0 version, as shown in the following markup:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\NorthwindEntitiesLib\NorthwindEntitiesLib.csproj" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SQLite" Version="6.0.0" />
</ItemGroup>
</Project>
For the NorthwindMvc
project, the referenced NuGet packages should use the .NET 6.0 versions, as shown in the following markup:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<UserSecretsId>aspnet-NorthwindMvc-72F8E5E5-AF15-4520-91A9-EF8090AF2961</UserSecretsId>
</PropertyGroup>
<ItemGroup>
<None Update="app.db" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="6.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="6.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="6.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="6.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.0" />
<!-- added in Chapter 18 to call a web service -->
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\NorthwindContextLib\NorthwindContextLib.csproj" />
</ItemGroup>
</Project>
Also read Upgrading to Piranha CMS 8.1 or later
For the NorthwindCms
project, the referenced NuGet packages should use the latest versions, as shown in the following markup:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Folder Include="wwwroot\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="6.0.0" />
<PackageReference Include="Piranha" Version="10.0.0" />
<PackageReference Include="Piranha.AspNetCore" Version="10.0.0" />
<PackageReference Include="Piranha.AspNetCore.Identity.SQLite" Version="10.0.0" />
<PackageReference Include="Piranha.AttributeBuilder" Version="10.0.0" />
<PackageReference Include="Piranha.Data.EF.SQLite" Version="10.0.0" />
<PackageReference Include="Piranha.ImageSharp" Version="10.0.0" />
<PackageReference Include="Piranha.Local.FileStorage" Version="10.0.0" />
<PackageReference Include="Piranha.Manager" Version="10.0.0" />
<PackageReference Include="Piranha.Manager.TinyMCE" Version="10.0.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\NorthwindEntitiesLib\NorthwindEntitiesLib.csproj" />
<ProjectReference Include="..\NorthwindContextLib\NorthwindContextLib.csproj" />
</ItemGroup>
</Project>
For the NorthwindService
project, the referenced NuGet packages should use the latest versions, as shown in the following markup:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\NorthwindContextLib\NorthwindContextLib.csproj" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.2.3" />
<PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore"
Version="6.0.0" />
</ItemGroup>
</Project>
For the NorthwindML
project, the referenced NuGet packages should use the latest versions, as shown in the following markup:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="6.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="6.0.0" />
<PackageReference Include="Microsoft.ML" Version="1.7.0" />
<PackageReference Include="Microsoft.ML.Recommender" Version="0.19.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\NorthwindContextLib\NorthwindContextLib.csproj" />
<ProjectReference Include="..\NorthwindEmployees\NorthwindEmployees.csproj" />
</ItemGroup>
</Project>