Description
There's a breaking change to the .NET SDK coming in .NET 8 Preview 6 (Not preview 5 like the docs indicate @gewarren) that makes any app depending on SQLitePCLRaw.core to output a warning like the following at runtime:
You need to install the latest preview 6 SDK which isn't yet released to repo. In the meantime, you can install the nightlies from https://github.com/dotnet/installer#table
Once you do, you can create a basic console app using something like dotnet new console
, make sure you're using a preview6 SDK with a global.json, replace the csproj with:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="SQLitePCLRaw.lib.e_sqlite3" Version="2.1.5" />
</ItemGroup>
</Project>
If you run or publish the app, you see the following warning. Fortunately, this does not stop the app from running successfully, but it adds noise to the output of any app depending on the package directly or transitively.
> dotnet run
D:\dev\.dotnet\sdk\8.0.100-preview.6.23315.26\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.target
s(267,5): warning NETSDK1206: Found version-specific or distribution-specific runtime identifier(s): alpine-arm, alpine
-arm64, alpine-x64, browser-wasm, maccatalyst-arm64, maccatalyst-x64. Affected libraries: SQLitePCLRaw.lib.e_sqlite3. I
n .NET 8.0 and higher, assets for version-specific and distribution-specific runtime identifiers will not be found by d
efault. See https://aka.ms/dotnet/rid-usage for details. [D:\dev\manual-tests-issue-2163\manual-tests-issue-21
63.csproj]
Hello, World!
My understanding is that RIDs like alpine-arm
should be replaced with just linux-musl-arm
which already exists. Similarly, browser-wasm
should be replaced with just wasm
. I'm not sure about the maccatalyst
targets. I assume the osx
binaries are incompatible since they come from a different build artifact in the nuspec.
https://learn.microsoft.com/en-us/dotnet/core/compatibility/deployment/8.0/rid-asset-list
@gewarren @elinor-fung @richlander I think the breaking change announcement might need to go into a lot more detail about what's allowed. It wasn't clear to me that wasm
is probably the intended replacement for browser-wasm
until looking at dotnet/runtime#83246. WASM isn't mentioned anywhere in the breaking change announcement. Neither are the full list of OS's, libc versions, and processor architectures.
@davidortinau Do you know what the plan is for libraries that target maui-supported RIDs like maccatalys
, android
and ios
?
@roji Heads up in case you start seeing this in Microsoft.Data.Sqlite.Core