如何彻底移除.NET MAUI项目中自动重现的Xamarin NuGet包?
以下是可以彻底解决Xamarin程序集自动重现问题的步骤:
检查并编辑项目文件(.csproj)
直接打开项目的.csproj文件,查找所有指向目标Xamarin程序集的PackageReference或FrameworkReference节点,删除这些行。同时检查是否存在<UseXamarin>、<AndroidUseXamarinLegacy>这类启用Xamarin遗留组件的配置,将其设置为false或直接删除。清理全量NuGet缓存
打开命令提示符,执行以下命令清理所有本地NuGet缓存(包括全局包、HTTP缓存、临时文件):dotnet nuget locals all --clear这比单独删除用户目录下的
.nuget\packages更彻底,能避免缓存残留导致包重新下载。排查上层依赖包
右键项目 → 管理NuGet包 → 切换到「已安装」标签,检查是否有其他依赖这些Xamarin程序集的包(比如Azure推送通知相关的组件)。如果存在,先移除这些上层依赖,再尝试清理目标Xamarin包。删除项目的bin和obj目录
关闭Visual Studio,手动删除项目根目录下的bin和obj文件夹。这两个目录会存储编译时的临时配置和依赖文件,残留的配置可能导致重新生成时自动拉取Xamarin包。编辑NuGet锁定文件
如果项目目录下存在packages.lock.json文件,打开后查找目标Xamarin程序集的相关条目,删除对应的段落并保存。这个文件会强制锁定依赖版本,残留的条目会触发NuGet重新下载对应包。重置Visual Studio组件缓存
关闭Visual Studio后,删除以下目录的内容:%LOCALAPPDATA%\Microsoft\VisualStudio\<你的VS版本号>\ComponentModelCache%LOCALAPPDATA%\Microsoft\VisualStudio\<你的VS版本号>\Temp
这一步能清除VS本地缓存的组件配置,避免读取旧的引用规则。
内容的提问来源于stack exchange,提问作者Blanthor

