Skip to content
New issue

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

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

Already on GitHub? # to your account

MAUI Windows CLI publish always fails due to Mono dependency #27215

Open
MSLukeWest opened this issue Jan 18, 2025 · 6 comments
Open

MAUI Windows CLI publish always fails due to Mono dependency #27215

MSLukeWest opened this issue Jan 18, 2025 · 6 comments
Labels
area-essentials Essentials: Device, Display, Connectivity, Secure Storage, Sensors, App Info platform/windows 🪟 s/triaged Issue has been reviewed s/verified Verified / Reproducible Issue ready for Engineering Triage t/bug Something isn't working
Milestone

Comments

@MSLukeWest
Copy link
Contributor

MSLukeWest commented Jan 18, 2025

Description

If you create a new .NET MAUI app and attempt to publish for Windows, it will fail with:

Unable to find package Microsoft.NETCore.App.Runtime.Mono.win-x64 with version (= 9.0.1)

This is because 9.0.x versions of Microsoft.NETCore.App.Runtime.Mono don't exist, they stopped after 9.0.0 Preview 7. The workaround is to add the property "UseMonoRuntime=false".

UseMonoRuntime=false should be the default in this case.

Steps to Reproduce

  1. dotnet new maui
  2. dotnet publish foo.csproj -c Release -f net9.0-windows10.0.19041.0 -r win-x64 (reproes regardless of RID)

Result: Fails

Unable to find package Microsoft.NETCore.App.Runtime.Mono.win-x64 with version (= 9.0.1)
- Found 103 version(s) in nuget.org [ Nearest version: 9.0.0-preview.7.24405.7 ]
- ...

Link to public reproduction project repository

No response

Version with bug

9.0.30 SR3

Is this a regression from previous behavior?

Yes, this used to work in .NET MAUI

Last version that worked well

9.0.0-preview.7.24407.4

Affected platforms

Windows

Affected platform versions

All

Did you find any workaround?

Append "-p:UseMonoRuntime=false" to the command line arguments.

Relevant log output

@MSLukeWest MSLukeWest added the t/bug Something isn't working label Jan 18, 2025
@MSLukeWest
Copy link
Contributor Author

BinLog: msbuild.binlog.txt

@MSLukeWest
Copy link
Contributor Author

#23016 mentions this as well

@StephaneDelcroix StephaneDelcroix added area-essentials Essentials: Device, Display, Connectivity, Secure Storage, Sensors, App Info potential-regression This issue described a possible regression on a currently supported version., verification pending labels Jan 18, 2025
@Ying-6 Ying-6 added s/triaged Issue has been reviewed s/verified Verified / Reproducible Issue ready for Engineering Triage platform/windows 🪟 and removed potential-regression This issue described a possible regression on a currently supported version., verification pending labels Jan 20, 2025
@Ying-6
Copy link

Ying-6 commented Jan 20, 2025

This issue has been verified using Visual Studio 17.13.0 Preview 2.1 (9.0.30 & 9.0.0-preview.7.24407.4 & 9.0.0-preview.1.9973). Can repro on Windows platform.
Image

@BlinkSun
Copy link

BlinkSun commented Jan 28, 2025

Got that too, just use in csproj :

<UseMonoRuntime>false</UseMonoRuntime>

or add

-p:UseMonoRuntime=false

@Perksey
Copy link
Member

Perksey commented Feb 2, 2025

Perksey added a commit to dotnet/Silk.NET that referenced this issue Feb 2, 2025
@Perksey
Copy link
Member

Perksey commented Feb 2, 2025

And I can confirm the above workaround also fixes it, thanks all! Would be good to have UseMonoRuntime default to false where a runtime pack intentionally does not exist for it.

@jsuarezruiz jsuarezruiz added this to the Backlog milestone Feb 3, 2025
Perksey added a commit to dotnet/Silk.NET that referenced this issue Feb 9, 2025
* Initial group codegen

* Fix some trimming oddities

* Fix HintTargetPGI and others similarly situated

* Base typing and namespacing

* Cast enum members, fix stray semicolons, Silk.NET.OpenGL builds again

* Group and bool transformations

* Fix erroneous cast order

* Add Delete(singular) overloads (ArrayParameterOverloader)

* Add SAL object model & Khronos length metadata parsing

* ArrayParameterTransformer w/ tests

* Integrate ArrayParameterTransformer

* Support SupportedApiProfileAttribute generation with metadata

* PrettifyNames conflict resolution now actually works

* Fix casting transformation ambiguity bugs

* Fix metadata retrieval for reserved identifiers

* Fix unit tests

* Fixup for all caps names

* Fix naive trimming bug

* More self-review comments

* SDL bindings

* Fix naming regression

* Prettify & extract the nested _e__{Union,Struct,FixedBuffer} structs

* Function pointer generation

* Add a second pass to name delegates based on usage!

* Fixes from self-review

* Windowing 3.0 Iteration 1 with Dependency Injection - scrapped

* WIP Windowing 3.0 for real this time

* Some more work

Will be pausing here as I need to change the bindings, and to be honest I don't want to do that without doing the SilkTouch refactor first.

* Rejig the repo structure

* Save progress, as I am deleting the progress

* Create a Roslyn compilation & workspace

* Bugfixes, generation runs with renaming but is slow and outputs wrong

* Some more bugfixes

* Fix mods not saving outputs, unnecessary subdirs, filenames, and other renamer issues

* Add IResponseFileMod, fix EntryPoint not in DllImport, and other fixes & improvements

* Delete some stray files

* Minor nits

* Initial commit of the SymbolFinder rename experiment

* This is the new renamer

* Fix ctors and dtors, stop using `using static`s

* Regenerate bindings

* Use public Roslyn APIs and parallelise

* Fix buidl

* Add ISurfaceProvider

* Add a write-up on the PAL HLU concepts/status for the future

* Remove the hosting API

* Start on a more clean sheet and conservative implementation

* Separate files

* Lay out impl, add new APIs from proposal

* Add a Utf8String helper type, and transform string constants to use it

* Move bakery functionality into a mod separate from SupportedApiProfiles

* Rename GetTypeDeclaration to BakeMember

* Cache the result of function pointer loading

* Fix vulnerability?

* Recognise some #define enums, improve pfn type gen, update SDL, more fixes

* Update ClangSharp (with no changes!!!!1111!1!!!111 🎉)

* Commit cache files too

* Add SDL_gpu (and other missing headers such as SDL_vulkan)

* Check-in rsp changes, add namespace for windowing, add SDL_main bindings

* Work on more of the implementation

* Triangle with Silk.NET.Windowing 3.0

* Implement all APIs

* Wire up all relevant events

* Sweep a macOS deficiency under the rug

* Apply initial configuration, surprisingly little code...

* Initial work on native build workflow

* Stop using YAML for GITHUB_OUTPUT

* Add GH_TOKEN env var to stage2

* Use an action for comment writing instead

* Fix permissions, try to fix expr issue

* Same again

* Fix PR comment location

* Replace the comment rather than append to it

* Start of native build job

* Attempt to fix matrix

* Add a job name, fix build script permissions issues

* Add OSX build for SDL

* Start of commit job

* Add missing checkout

* Use official action to checkout PR

* Fix permissions issues

* Update native binaries for bc82423

* Start of linux-x64 SDL build

* Sudo for apt

* apt-get update

* Checkout submodule

* Fix path error

* Update native binaries for ece2459

* Add linux-arm and linux-arm64

* Use glibc 2.34 on linux-arm for Y2038 support

* Update native binaries for 3e3df2c

* Add win-arm, win-arm64, win-x64

* Fix dir structure

* Attempt to keep win-arm support, may be on the chopping block though

* Fix batch script error

* Use curl instead of wget?

* Fix winsdk install?

* Remove 32-bit Windows on Arm support

* Use a Microsoft Developer Command Prompt

* Fix vcvarsall path

* Use Ninja - libsdl-org/SDL##11487

* Update native binaries for 601bb66

* Fix artifact download path

* Fix the fix

* Update native binaries for 4630438

* Add iOS and tvOS for SDL

* Fix file permissions

* Update native binaries for 45f36d0

* Add Android build for SDL

* Apparently sdkmanager is not in PATH

* Install Python 3.11

* Install Ninja

* Update native binaries for d7d3c69

* Try to ungitignore the Android jar

* Update native binaries for f79ad90

* Add an easy update script

* Include org.libsdl.app bindings with the aar, working package now

* Update native binaries for 8cf95c2

* Some cleanup, and add docs

* Fix build

* Install workloads in test too

* Update native binaries for 186f907

* Fix build (not ideally)

* Update native binaries for 44b9933

* Dummy commit to run Test/Build again

* Remove old code

* Fix it

* Stop downloading previews?

* Add dependency to native package for SDL

* Fix build

* Only duplicate the VersionSuffix for natives

* Add SilkActivity

* WG comments

* Fix build?

* More build fix attempts

* Use the condition guards for xplat builds

* Fix csproj

* Clear locals to try and fix weird .NET SDK bug

* Add workaround from dotnet/maui#27215

* Fixes from self review

* Rectify remaining self-review comments

* nit

---------

Co-authored-by: The Silk.NET Automaton <9011267+dotnet-bot@users.noreply.github.com>
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
area-essentials Essentials: Device, Display, Connectivity, Secure Storage, Sensors, App Info platform/windows 🪟 s/triaged Issue has been reviewed s/verified Verified / Reproducible Issue ready for Engineering Triage t/bug Something isn't working
Projects
None yet
Development

No branches or pull requests

6 participants