.NET 8 (aka .NET Core 8) it can't use .NET framework assemblies. The solution is you create a class library project that targets .NET Standard 2.0. This library can then be referenced by both .NET Core and .NET Framework projects. .NET Standard is not deprecated, but it has been largely superseded by .NET 5 and later versions.
MS - Breaking changes for migration from .NET Framework to .NET Core
MS - Native AOT deployment
Trimming is fully supported in .NET 6 and later versions. In .NET Core 3.1 and .NET 5, trimming was an experimental feature. The .NET Core 4 does not exist. The .NET Core framework transitioned directly from version 3.1 to .NET 5. Microsoft rebranded .NET Core as simply ".NET" starting with version 5, which was released in November 2020.
Migrating from .NET 4.8 to .NET Core 8
net8 / net9 | alternative download
Find the net framework developer pack installed to machine, see the Version entry
Find the .net SDK installed
Find the .net runtime installed
Blazor (by asp.net core 3) is a feature of ASP.NET for building interactive web UIs using C# instead of JavaScript. It's real .NET running in the browser on WebAssembly. [1] -- WebCIL is a tool that compiles WebAssembly (Wasm) modules into a format that can be used in web applications. ILSpy v9 added support for reading WebCIL assemblies.
Upgrade Assistant (upgrade framework project to net)
Disable telemetry - source - https://learn.microsoft.com/en-us/dotnet/core/porting/upgrade-assistant-telemetry
Add a local NuGet package to a Visual Studio project
MS - Breaking changes for migration from .NET Framework to .NET Core
- Windows Forms support was added to .NET Core in version 3.0.
- Modernization of the FolderBrowserDialog
- .NET Core does not require the .NET Runtime Optimization Service (NGen) (instead see R2R)
MS - Native AOT deployment
The Native AOT deployment model uses an ahead-of-time compiler to compile IL to native code at the time of publish. Native AOT apps don't use a just-in-time (JIT) compiler when the application runs. Native AOT applications target a specific runtime environment, such as Linux x64 or Windows x64, just like publishing a self-contained app.
Trimming is fully supported in .NET 6 and later versions. In .NET Core 3.1 and .NET 5, trimming was an experimental feature. The .NET Core 4 does not exist. The .NET Core framework transitioned directly from version 3.1 to .NET 5. Microsoft rebranded .NET Core as simply ".NET" starting with version 5, which was released in November 2020.
Migrating from .NET 4.8 to .NET Core 8
net8 / net9 | alternative download
Find the net framework developer pack installed to machine, see the Version entry
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full
Find the .net SDK installed
dotnet --list-sdks
Find the .net runtime installed
dotnet --list-runtimes
Blazor (by asp.net core 3) is a feature of ASP.NET for building interactive web UIs using C# instead of JavaScript. It's real .NET running in the browser on WebAssembly. [1] -- WebCIL is a tool that compiles WebAssembly (Wasm) modules into a format that can be used in web applications. ILSpy v9 added support for reading WebCIL assemblies.
Upgrade Assistant (upgrade framework project to net)
// install
dotnet tool install -g upgrade-assistant
// use
upgrade-assistant upgrade <path-to-your-project-file>
Disable telemetry - source - https://learn.microsoft.com/en-us/dotnet/core/porting/upgrade-assistant-telemetry
To opt out of the telemetry feature, set the DOTNET_UPGRADEASSISTANT_TELEMETRY_OPTOUT environment variable to 1
// The telemetry data is used to help understand how to make improvements to the tool.![]()
Add a local NuGet package to a Visual Studio project
- Create a new project or open an existing one.
- Create a folder in your computer that will be a "repository" of local NuGet packages. (Let's name it local-nugets).
- In Visual Studio, go to Tools > Options > NuGet Package Manager > Package Sources.
- Click the Add button (the green cross) to create a new Package Source.
- In the bottom inputs, choose a custom name for this new Package Source and then click the three dots (...) to browse and select the folder you previously created -- local-nugets in my case -- and then click on Update.
- Now include your NuGet package inside your local-nugets folder, and everything left is to install the package as follows.
- Go to Project > Manage NuGet Packages > Browse.
- Select your new Package source which should be listed.
- Click it and select Install.
- You're all done installing the package. Just add the corresponding headers to your C# file to include the NuGet package in your project.