Using central package management causes build breaking NU1009 with MAUI projects
hypdeb opened this issue · 46 comments
Description
Building a MAUI
project using central package management does not seem possible because of the NU1009
error. It reads as a warning, but is in fact a build breaking error.
I attached a minimal reproduction containing a MAUI
project and a library that this project depends on, which itself requires the ILogger
abstraction from Microsoft.Extensions.Logging.Abstractions
,. If you build it as is, the build fails with:
error NU1009: The packages Microsoft.Extensions.Logging.Abstractions;Microsoft.Extensions.Logging.Abstractions;Microsoft.Extensions.Logging.Abstractions;Microsoft.Extensions.Logging.Abstractions
are implicitly referenced. You do not typically need to reference them from your project or in your central package versions management file. For more information, see https://aka.ms/sdkimplicitrefs
If you fix this error by removing the reference to Microsoft.Extensions.Logging.Abstractions
(what the error suggests you do), the build fails with a collection of errors, due to the fact that the ILogger
interface is cannot be found anymore in the library which the MAUI project depends on.
I also tried using https://learn.microsoft.com/en-gb/dotnet/core/project-sdk/msbuild-props#disableimplicitframeworkreferences, but it seems it is ignored altogether and has no effect.
Moreover, it doesn't seem to happen with other project types such as web API or console app.
Steps to Reproduce
- Clone the attached reproduction project repository
- Run
dotnet build
at the root of the cloned repo
Link to public reproduction project repository
https://github.com/hypdeb/repros
Version with bug
7.0 (current)
Last version that worked well
Unknown/Other
Affected platforms
Windows
Affected platform versions
This is a build failure
Did you find any workaround?
No response
Relevant log output
No response
@Eilon would you know more about this? What area this might fall on? Feels like this is maybe not something for our team?
I've heard of this feature but I've never directly used it. I think we'll need a NuGet or SDK expert to chime in. @eerhardt - perhaps you or someone you know could help shed light on this?
cc @jeffkl @dtivel @joelverhagen - any ideas/thoughts here?