From 48c5563abff1393a2bdd0ee88bb6b4b250f8c235 Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Wed, 25 Mar 2026 15:44:21 -0700 Subject: [PATCH 1/5] Add NU1704 warning documentation for deprecated MonoAndroid framework --- docs/reference/Errors-and-Warnings.md | 2 +- docs/reference/errors-and-warnings/NU1704.md | 34 ++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 docs/reference/errors-and-warnings/NU1704.md diff --git a/docs/reference/Errors-and-Warnings.md b/docs/reference/Errors-and-Warnings.md index 3abf97dd5..f943d0bf0 100644 --- a/docs/reference/Errors-and-Warnings.md +++ b/docs/reference/Errors-and-Warnings.md @@ -46,7 +46,7 @@ NuGet supports the following configuration properties. | Invalid input warnings | [NU1501](./errors-and-warnings/NU1501.md), [NU1502](./errors-and-warnings/NU1502.md), [NU1503](./errors-and-warnings/NU1503.md), [NU1504](./errors-and-warnings/NU1504.md), [NU1505](./errors-and-warnings/NU1505.md), [NU1506](./errors-and-warnings/NU1506.md), [NU1507](./errors-and-warnings/NU1507.md), [NU1508](./errors-and-warnings/NU1508.md), [NU1509](./errors-and-warnings/NU1509.md), [NU1510](./errors-and-warnings/NU1510.md), [NU1511](./errors-and-warnings/NU1511.md) | | Unexpected package version warnings | [NU1601](./errors-and-warnings/NU1601.md), [NU1602](./errors-and-warnings/NU1602.md), [NU1603](./errors-and-warnings/NU1603.md), [NU1604](./errors-and-warnings/NU1604.md), [NU1605](./errors-and-warnings/NU1605.md), [NU1606](./errors-and-warnings/NU1108.md), [NU1607](./errors-and-warnings/NU1107.md) | | Resolver conflict warnings | [NU1608](./errors-and-warnings/NU1608.md) | -| Package fallback warnings | [NU1701](./errors-and-warnings/NU1701.md), [NU1702](./errors-and-warnings/NU1702.md), [NU1703](./errors-and-warnings/NU1703.md)| +| Package fallback warnings | [NU1701](./errors-and-warnings/NU1701.md), [NU1702](./errors-and-warnings/NU1702.md), [NU1703](./errors-and-warnings/NU1703.md), [NU1704](./errors-and-warnings/NU1704.md) | | Feed warnings | [NU1801](./errors-and-warnings/NU1801.md), [NU1802](./errors-and-warnings/NU1802.md), [NU1803](./errors-and-warnings/NU1803.md) | | NuGet internal warnings | [NU1500](./errors-and-warnings/NU1500.md) | | Signed packages warnings (creation and verification) | [NU3000](./errors-and-warnings/NU3000.md), [NU3002](./errors-and-warnings/NU3002.md), [NU3003](./errors-and-warnings/NU3003.md), [NU3006](./errors-and-warnings/NU3006.md), [NU3007](./errors-and-warnings/NU3007.md), [NU3009](./errors-and-warnings/NU3009.md), [NU3010](./errors-and-warnings/NU3010.md), [NU3011](./errors-and-warnings/NU3011.md), [NU3012](./errors-and-warnings/NU3012.md), [NU3013](./errors-and-warnings/NU3013.md), [NU3014](./errors-and-warnings/NU3014.md), [NU3015](./errors-and-warnings/NU3015.md), [NU3016](./errors-and-warnings/NU3016.md), [NU3017](./errors-and-warnings/NU3017.md), [NU3018](./errors-and-warnings/NU3018.md), [NU3019](./errors-and-warnings/NU3019.md), [NU3020](./errors-and-warnings/NU3020.md), [NU3021](./errors-and-warnings/NU3021.md), [NU3022](./errors-and-warnings/NU3022.md), [NU3023](./errors-and-warnings/NU3023.md), [NU3024](./errors-and-warnings/NU3024.md), [NU3025](./errors-and-warnings/NU3025.md), [NU3026](./errors-and-warnings/NU3026.md), [NU3027](./errors-and-warnings/NU3027.md), [NU3028](./errors-and-warnings/NU3028.md), [NU3029](./errors-and-warnings/NU3029.md), [NU3030](./errors-and-warnings/NU3030.md), [NU3031](./errors-and-warnings/NU3031.md), [NU3032](./errors-and-warnings/NU3032.md), [NU3033](./errors-and-warnings/NU3033.md), [NU3035](./errors-and-warnings/NU3035.md), [NU3036](./errors-and-warnings/NU3036.md), [NU3037](./errors-and-warnings/NU3037.md), [NU3038](./errors-and-warnings/NU3038.md), [NU3040](./errors-and-warnings/NU3040.md), [NU3042](./errors-and-warnings/NU3042.md), [NU3043](./errors-and-warnings/NU3043.md) | diff --git a/docs/reference/errors-and-warnings/NU1704.md b/docs/reference/errors-and-warnings/NU1704.md new file mode 100644 index 000000000..c7bce0ac8 --- /dev/null +++ b/docs/reference/errors-and-warnings/NU1704.md @@ -0,0 +1,34 @@ +--- +title: NuGet Warning NU1704 +description: NU1704 warning code +author: sbomer +ms.date: 03/25/2026 +ms.topic: reference +f1_keywords: + - "NU1704" +--- + +# NuGet Warning NU1704 + +> Package 'Xamarin.Essentials' 1.8.1 uses the deprecated MonoAndroid framework instead of 'net6.0-android' or later. Consider upgrading to a newer version of this package or contacting the package author. + +### Issue + +A project targeting `net11.0-android` or later references a package whose resolved compile-time or runtime assemblies come from a `monoandroid` framework folder. The `MonoAndroid` target framework is deprecated in favor of `net6.0-android` and later .NET TFMs. + +This warning is only raised when both of the following conditions are met: + +- The project targets `net11.0-android` or later. +- The SDK analysis level is 11.0.100 or higher. + +### Solution + +Upgrade to a newer version of the package that provides `net6.0-android` (or later) assets. If no updated version is available, contact the package author and request they update the package to target modern .NET Android TFMs. + +To suppress the warning, add `NU1704` to the `NoWarn` property in your project file: + +```xml + + $(NoWarn);NU1704 + +``` From df609191809771d17172f8df4e977e452e7e1130 Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Wed, 25 Mar 2026 15:47:04 -0700 Subject: [PATCH 2/5] Use generic packageId placeholder in NU1704 example message --- docs/reference/errors-and-warnings/NU1704.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/reference/errors-and-warnings/NU1704.md b/docs/reference/errors-and-warnings/NU1704.md index c7bce0ac8..5e158031c 100644 --- a/docs/reference/errors-and-warnings/NU1704.md +++ b/docs/reference/errors-and-warnings/NU1704.md @@ -10,7 +10,7 @@ f1_keywords: # NuGet Warning NU1704 -> Package 'Xamarin.Essentials' 1.8.1 uses the deprecated MonoAndroid framework instead of 'net6.0-android' or later. Consider upgrading to a newer version of this package or contacting the package author. +> Package 'packageId' version uses the deprecated MonoAndroid framework instead of 'net6.0-android' or later. Consider upgrading to a newer version of this package or contacting the package author. ### Issue From 77c36080c0e5d11b6bc04b01d1ce53fc14456521 Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Wed, 25 Mar 2026 16:19:19 -0700 Subject: [PATCH 3/5] Address review: fix warning message format and add NU1704 to TOC --- docs/TOC.md | 1 + docs/reference/errors-and-warnings/NU1704.md | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/TOC.md b/docs/TOC.md index cbd3e738a..b68341bdf 100644 --- a/docs/TOC.md +++ b/docs/TOC.md @@ -202,6 +202,7 @@ ### [NU1701](reference/errors-and-warnings/NU1701.md) ### [NU1702](reference/errors-and-warnings/NU1702.md) ### [NU1703](reference/errors-and-warnings/NU1703.md) +### [NU1704](reference/errors-and-warnings/NU1704.md) ### [NU1900](reference/errors-and-warnings/NU1900.md) ### [NU1901](reference/errors-and-warnings/NU1901-NU1904.md) ### [NU1902](reference/errors-and-warnings/NU1901-NU1904.md) diff --git a/docs/reference/errors-and-warnings/NU1704.md b/docs/reference/errors-and-warnings/NU1704.md index 5e158031c..80b956116 100644 --- a/docs/reference/errors-and-warnings/NU1704.md +++ b/docs/reference/errors-and-warnings/NU1704.md @@ -10,7 +10,7 @@ f1_keywords: # NuGet Warning NU1704 -> Package 'packageId' version uses the deprecated MonoAndroid framework instead of 'net6.0-android' or later. Consider upgrading to a newer version of this package or contacting the package author. +> Package 'packageId' 'version' uses the deprecated MonoAndroid framework instead of 'net6.0-android' or later. Consider upgrading to a newer version of this package or contacting the package author. ### Issue From ea200b398547b3fc34c1c6622dee65aeca73c1fa Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Mon, 30 Mar 2026 12:45:35 -0700 Subject: [PATCH 4/5] Reuse NU1703 for deprecated MonoAndroid warning instead of NU1704 Per PR feedback on NuGet/NuGet.Client#7229, reuse the NU1703 warning code for the MonoAndroid deprecation scenario. The previous NU1703 for Xamarin.iOS never shipped, so the code is safe to repurpose. Remove NU1704 doc and references from TOC and index. --- docs/TOC.md | 1 - docs/reference/Errors-and-Warnings.md | 2 +- docs/reference/errors-and-warnings/NU1703.md | 11 +++++-- docs/reference/errors-and-warnings/NU1704.md | 34 -------------------- 4 files changed, 9 insertions(+), 39 deletions(-) delete mode 100644 docs/reference/errors-and-warnings/NU1704.md diff --git a/docs/TOC.md b/docs/TOC.md index b68341bdf..cbd3e738a 100644 --- a/docs/TOC.md +++ b/docs/TOC.md @@ -202,7 +202,6 @@ ### [NU1701](reference/errors-and-warnings/NU1701.md) ### [NU1702](reference/errors-and-warnings/NU1702.md) ### [NU1703](reference/errors-and-warnings/NU1703.md) -### [NU1704](reference/errors-and-warnings/NU1704.md) ### [NU1900](reference/errors-and-warnings/NU1900.md) ### [NU1901](reference/errors-and-warnings/NU1901-NU1904.md) ### [NU1902](reference/errors-and-warnings/NU1901-NU1904.md) diff --git a/docs/reference/Errors-and-Warnings.md b/docs/reference/Errors-and-Warnings.md index f943d0bf0..3c6e29ab4 100644 --- a/docs/reference/Errors-and-Warnings.md +++ b/docs/reference/Errors-and-Warnings.md @@ -46,7 +46,7 @@ NuGet supports the following configuration properties. | Invalid input warnings | [NU1501](./errors-and-warnings/NU1501.md), [NU1502](./errors-and-warnings/NU1502.md), [NU1503](./errors-and-warnings/NU1503.md), [NU1504](./errors-and-warnings/NU1504.md), [NU1505](./errors-and-warnings/NU1505.md), [NU1506](./errors-and-warnings/NU1506.md), [NU1507](./errors-and-warnings/NU1507.md), [NU1508](./errors-and-warnings/NU1508.md), [NU1509](./errors-and-warnings/NU1509.md), [NU1510](./errors-and-warnings/NU1510.md), [NU1511](./errors-and-warnings/NU1511.md) | | Unexpected package version warnings | [NU1601](./errors-and-warnings/NU1601.md), [NU1602](./errors-and-warnings/NU1602.md), [NU1603](./errors-and-warnings/NU1603.md), [NU1604](./errors-and-warnings/NU1604.md), [NU1605](./errors-and-warnings/NU1605.md), [NU1606](./errors-and-warnings/NU1108.md), [NU1607](./errors-and-warnings/NU1107.md) | | Resolver conflict warnings | [NU1608](./errors-and-warnings/NU1608.md) | -| Package fallback warnings | [NU1701](./errors-and-warnings/NU1701.md), [NU1702](./errors-and-warnings/NU1702.md), [NU1703](./errors-and-warnings/NU1703.md), [NU1704](./errors-and-warnings/NU1704.md) | +| Package fallback warnings | [NU1701](./errors-and-warnings/NU1701.md), [NU1702](./errors-and-warnings/NU1702.md), [NU1703](./errors-and-warnings/NU1703.md) | | Feed warnings | [NU1801](./errors-and-warnings/NU1801.md), [NU1802](./errors-and-warnings/NU1802.md), [NU1803](./errors-and-warnings/NU1803.md) | | NuGet internal warnings | [NU1500](./errors-and-warnings/NU1500.md) | | Signed packages warnings (creation and verification) | [NU3000](./errors-and-warnings/NU3000.md), [NU3002](./errors-and-warnings/NU3002.md), [NU3003](./errors-and-warnings/NU3003.md), [NU3006](./errors-and-warnings/NU3006.md), [NU3007](./errors-and-warnings/NU3007.md), [NU3009](./errors-and-warnings/NU3009.md), [NU3010](./errors-and-warnings/NU3010.md), [NU3011](./errors-and-warnings/NU3011.md), [NU3012](./errors-and-warnings/NU3012.md), [NU3013](./errors-and-warnings/NU3013.md), [NU3014](./errors-and-warnings/NU3014.md), [NU3015](./errors-and-warnings/NU3015.md), [NU3016](./errors-and-warnings/NU3016.md), [NU3017](./errors-and-warnings/NU3017.md), [NU3018](./errors-and-warnings/NU3018.md), [NU3019](./errors-and-warnings/NU3019.md), [NU3020](./errors-and-warnings/NU3020.md), [NU3021](./errors-and-warnings/NU3021.md), [NU3022](./errors-and-warnings/NU3022.md), [NU3023](./errors-and-warnings/NU3023.md), [NU3024](./errors-and-warnings/NU3024.md), [NU3025](./errors-and-warnings/NU3025.md), [NU3026](./errors-and-warnings/NU3026.md), [NU3027](./errors-and-warnings/NU3027.md), [NU3028](./errors-and-warnings/NU3028.md), [NU3029](./errors-and-warnings/NU3029.md), [NU3030](./errors-and-warnings/NU3030.md), [NU3031](./errors-and-warnings/NU3031.md), [NU3032](./errors-and-warnings/NU3032.md), [NU3033](./errors-and-warnings/NU3033.md), [NU3035](./errors-and-warnings/NU3035.md), [NU3036](./errors-and-warnings/NU3036.md), [NU3037](./errors-and-warnings/NU3037.md), [NU3038](./errors-and-warnings/NU3038.md), [NU3040](./errors-and-warnings/NU3040.md), [NU3042](./errors-and-warnings/NU3042.md), [NU3043](./errors-and-warnings/NU3043.md) | diff --git a/docs/reference/errors-and-warnings/NU1703.md b/docs/reference/errors-and-warnings/NU1703.md index b1f40d7f0..4da6b9dcb 100644 --- a/docs/reference/errors-and-warnings/NU1703.md +++ b/docs/reference/errors-and-warnings/NU1703.md @@ -12,12 +12,17 @@ f1_keywords: # NuGet Warning NU1703 -> 'packageId' was resolved as a dependency of 'project', but the dependency is using 'Xamarin.iOS' while 'project' is using 'net6.0-maccatalyst14.5' as its TargetFramework +> Package 'packageId' 'version' uses the deprecated MonoAndroid framework instead of 'net6.0-android' or later. Consider upgrading to a newer version of this package or contacting the package author. ### Issue -While `net6.0-maccatalyst` (and higher .NET versions) support using Xamarin.iOS dependencies, this is not guaranteed to be 100% compatible. +A project targeting `net11.0-android` or later references a package whose resolved compile-time or runtime assemblies come from a `monoandroid` framework folder. The `MonoAndroid` target framework is deprecated in favor of `net6.0-android` and later .NET TFMs. While MonoAndroid class libraries might work at runtime, compatibility isn't guaranteed. + +This warning is only raised when both of the following conditions are met: + +1. The project targets `net11.0-android` or later. +1. The SDK analysis level is 11.0.100 or higher. ### Solution -Use a dependency that ships artifacts for `net6.0-maccatalyst` or a higher .NET version instead of relying on legacy Xamarin.iOS. +Upgrade to a newer version of the package that provides `net6.0-android` (or later) assets. If no updated version is available, contact the package author and request that they update the package to target modern .NET Android TFMs. diff --git a/docs/reference/errors-and-warnings/NU1704.md b/docs/reference/errors-and-warnings/NU1704.md deleted file mode 100644 index 80b956116..000000000 --- a/docs/reference/errors-and-warnings/NU1704.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: NuGet Warning NU1704 -description: NU1704 warning code -author: sbomer -ms.date: 03/25/2026 -ms.topic: reference -f1_keywords: - - "NU1704" ---- - -# NuGet Warning NU1704 - -> Package 'packageId' 'version' uses the deprecated MonoAndroid framework instead of 'net6.0-android' or later. Consider upgrading to a newer version of this package or contacting the package author. - -### Issue - -A project targeting `net11.0-android` or later references a package whose resolved compile-time or runtime assemblies come from a `monoandroid` framework folder. The `MonoAndroid` target framework is deprecated in favor of `net6.0-android` and later .NET TFMs. - -This warning is only raised when both of the following conditions are met: - -- The project targets `net11.0-android` or later. -- The SDK analysis level is 11.0.100 or higher. - -### Solution - -Upgrade to a newer version of the package that provides `net6.0-android` (or later) assets. If no updated version is available, contact the package author and request they update the package to target modern .NET Android TFMs. - -To suppress the warning, add `NU1704` to the `NoWarn` property in your project file: - -```xml - - $(NoWarn);NU1704 - -``` From a8660b244b6ea9e46038ac73f242b7fcea7d3a56 Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Mon, 30 Mar 2026 13:10:57 -0700 Subject: [PATCH 5/5] Fix NU1703 doc: update author alias, use concrete example in warning message --- docs/reference/errors-and-warnings/NU1703.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/reference/errors-and-warnings/NU1703.md b/docs/reference/errors-and-warnings/NU1703.md index 4da6b9dcb..b306ec3b9 100644 --- a/docs/reference/errors-and-warnings/NU1703.md +++ b/docs/reference/errors-and-warnings/NU1703.md @@ -1,8 +1,8 @@ --- title: NuGet Warning NU1703 description: NU1703 warning code -author: zkat -ms.author: kmarchan +author: sbomer +ms.author: svbomer ms.date: 07/01/2021 ms.topic: reference ms.reviewer: anangaur @@ -12,7 +12,7 @@ f1_keywords: # NuGet Warning NU1703 -> Package 'packageId' 'version' uses the deprecated MonoAndroid framework instead of 'net6.0-android' or later. Consider upgrading to a newer version of this package or contacting the package author. +> Package 'Contoso.Android.Library' 1.0.0 uses the deprecated MonoAndroid framework instead of 'net6.0-android' or later. Consider upgrading to a newer version of this package or contacting the package author. ### Issue