Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use framework provided by the SDK #67080

Closed
MichalStrehovsky opened this issue Mar 24, 2022 · 3 comments
Closed

Use framework provided by the SDK #67080

MichalStrehovsky opened this issue Mar 24, 2022 · 3 comments
Assignees
Milestone

Comments

@MichalStrehovsky
Copy link
Member

The ILCompiler NuGet package currently includes a copy of all the inbox framework assemblies:

<File Include="@(LibrariesRuntimeFiles)" TargetPath="framework" />

The .targets embedded in the ILCompiler package then replace the framework implementation assemblies that the SDK knows about with this private copy:

<DefaultFrameworkAssemblies Include="@(FrameworkAssemblies)" />
<DefaultFrameworkAssemblies Include="@(PrivateSdkAssemblies)" />

<DefaultFrameworkAssemblies Include="@(FrameworkAssemblies)" />
<DefaultFrameworkAssemblies Include="@(PrivateSdkAssemblies)" />

We do this because up until the move of NativeAOT to the runtime repo, we had customizations in the framework libraries that were not present in the shipping framework assemblies, and the NativeAOT CoreLib didn't version with the libraries that are in the SDK either (the latter is still true for users who consume NativeAOT as a NuGet package vs those that will consume it from the SDK - we sometimes do things like moving types from framework assemblies to CoreLib and such changes are not compatible with old frameworks).

The NativeAOT integration provided by the SDK should probably not be shipping a separate copy of these.

I'm putting this into .NET 7 milestone for consideration, but I'm not sure how much it's needed and how much it's nice to have.

Cc @agocke @LakshanF

@MichalStrehovsky MichalStrehovsky added this to the 7.0.0 milestone Mar 24, 2022
@dotnet-issue-labeler dotnet-issue-labeler bot added the untriaged New issue has not been triaged by the area owner label Mar 24, 2022
@MichalStrehovsky MichalStrehovsky removed the untriaged New issue has not been triaged by the area owner label Mar 24, 2022
@jkotas
Copy link
Member

jkotas commented Mar 24, 2022

we sometimes do things like moving types from framework assemblies to CoreLib and such changes are not compatible with old frameworks

These types of changes are still happening today.

In order to do this, we would need to guarantee that the runtime pack version and NativeAOT package version are the same.

@MichalStrehovsky MichalStrehovsky modified the milestones: 7.0.0, 8.0.0 Jul 29, 2022
@ghost ghost added the untriaged New issue has not been triaged by the area owner label Jul 29, 2022
@MichalStrehovsky MichalStrehovsky removed the untriaged New issue has not been triaged by the area owner label Aug 3, 2022
@MichalStrehovsky
Copy link
Member Author

dotnet/performance#2905 ran into us replacing the framework with our versions - it's not possible to use new Collections.Immutable with 7.0 NativeAOT because we replace it with the old version.

@MichalStrehovsky
Copy link
Member Author

Closing in favor of #87060.

@MichalStrehovsky MichalStrehovsky closed this as not planned Won't fix, can't repro, duplicate, stale Oct 5, 2023
@ghost ghost locked as resolved and limited conversation to collaborators Nov 4, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants