Open
Description
Describe the bug
When enabling the IsAotCompatible
property together with RestorePackagesWithLockFile
, dotnet adds Microsoft.NET.ILLink.Tasks
as a direct dependency to the lock file. As an effect, even patch updates of the .NET SDK (e.g. from 8.0.100 to 8.0.101) ends up in breaking package builds.
Therefore, even a patch update ends up in being a breaking change, although it should not have an effect on the NuGet package.
To Reproduce
- Create a new project, e.g. a console app with
dotnet new console
. - Enable
IsAotCompatible
andRestorePackagesWithLockFile
in the.csproj
. - As a result, the
packages.lock.json
looks like this (on my system with .NET 8.0.100):
{
"version": 1,
"dependencies": {
"net8.0": {
"Microsoft.NET.ILLink.Tasks": {
"type": "Direct",
"requested": "[8.0.0, )",
"resolved": "8.0.0",
"contentHash": "B3etT5XQ2nlWkZGO2m/ytDYrOmSsQG1XNBaM6ZYlX5Ch/tDrMFadr0/mK6gjZwaQc55g+5+WZMw4Cz3m8VEF7g=="
}
}
}
}
An example gist with the project files shows the minimum code required to reproduce it.
Further technical details
Output of dotnet --info
.NET SDK:
Version: 8.0.100
Commit: 57efcf1350
Workload version: 8.0.100-manifests.2d90560f
Runtime Environment:
OS Name: fedora
OS Version: 39
OS Platform: Linux
RID: fedora.39-x64
Base Path: /usr/lib64/dotnet/sdk/8.0.100/
.NET workloads installed:
Workload version: 8.0.100-manifests.2d90560f
There are no installed workloads to display.
Host:
Version: 8.0.0
Architecture: x64
Commit: 5535e31a71
.NET SDKs installed:
6.0.126 [/usr/lib64/dotnet/sdk]
8.0.100 [/usr/lib64/dotnet/sdk]
.NET runtimes installed:
Microsoft.AspNetCore.App 6.0.26 [/usr/lib64/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 8.0.0 [/usr/lib64/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 6.0.26 [/usr/lib64/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 8.0.0 [/usr/lib64/dotnet/shared/Microsoft.NETCore.App]
Other architectures found:
None
Environment variables:
DOTNET_ROOT [/usr/lib64/dotnet]
global.json file:
Not found
Learn more:
https://aka.ms/dotnet/info
Download .NET:
https://aka.ms/dotnet/download