dotnet / docs

This repository contains .NET Documentation.
https://learn.microsoft.com/dotnet
Creative Commons Attribution 4.0 International
4.21k stars 5.86k forks source link

[Breaking change]: Deprecating Desktop Windows/macOS/Linux MonoVM Runtime Nuget Packages #41366

Closed jeffschwMSFT closed 1 month ago

jeffschwMSFT commented 2 months ago

Description

The following desktop MonoVM runtime nuget packages are obsolete starting in .NET 9 Preview 7.

These nuget packages could optionally be used during .NET SDK publish for self-contained applications via an undocumented SDK switch. These desktop MonoVM runtime packages are not the default configuration for .NET publish scenarios. .NET 9 Preview 6 is the last release of these packages.

Version

.NET 9 Preview 7

Previous behavior

During .NET SDK publish, these desktop MonoVM nuget runtime packages were available for self-contained applications using an undocumented SDK switch.

New behavior

Starting in .NET 9 Preview 7, these desktop MonoVM nuget runtime packages are no longer available.

Type of breaking change

Reason for change

There is no official .NET scenario that aligns with these desktop MonoVM runtime nuget packages.

Recommended action

If your application publish relies on these packages, we recommend staying on .NET 8 LTS while the application migrates to the default desktop runtime nuget packages. Each of these platforms has a corresponding runtime nuget package.

Feature area

Other (please put exact area in description textbox)

Affected APIs

No response


Associated WorkItem - 292113

srxqds commented 2 months ago

there are so many team embed mono with game engine. I hope you keep the original plan. upload the mono desktop runtime package. More people and teams will use and verify it

jeffschwMSFT commented 2 months ago

@srxqds can we schedule some time to talk? I would love to hear details about how these packages are used and if our corresponding Microsoft.NETCore.App.Runtime.* would be a viable option.

To connect, here is my linkedin profile: https://www.linkedin.com/in/jeff-schwartz-4ba91023/

srxqds commented 2 months ago

hi,@jeffschwMSFT, I am so sorry I have no linkedin account, I can describe here as detail as I can. we have emebed mono in UnrealEngine, we use c# as game script develop on all platforms, We have been using it for many years. And according to my understanding, many teams actually use this solution.

jeffschwMSFT commented 2 months ago

A few follow-up questions.

For some platforms is monovm built and package (eg. consoles, etc.) locally? This breaking change does not change the lifecycle of monovm. For scenarios where these packages are used, have the Microsoft.NETCore.App.Runtime.* been explored? What gaps exist to move to these?

.NET 8 will continue to have support for these packages which aligns with our lifecycle: https://learn.microsoft.com/en-us/lifecycle/products/microsoft-net-and-net-core. So in the near term .NET 8 could continue to be a supported scenario. We would be interested in hearing what a change to our default packages would look like.

srxqds commented 2 months ago

ok, but when you not shipping nuget packages, we are starting to worry that you may be no longer supported and close test coverage for mono desktop runtime.

jeffschwMSFT commented 2 months ago

I understand the concern. This breaking change does not impact monovm's support for its primary shipping scenarios - iOS, Android, WASM, etc. Internally we use versions of these builds for validation, but we will no longer ship them for the reasons noted above.
I hope that clarifies what is changing.

srxqds commented 2 months ago

ok, than you for reply.