.NET MAUI项目中Microsoft.WindowsAppSDK等NuGet被项目阻止求助
解决.NET 7 MAUI项目中NuGet包被“Blocked by project”的问题
以下是针对这类问题的几种可行解决办法:
检查并修改项目文件的锁定配置
直接打开项目的.csproj文件,查找被锁定的NuGet包对应的<PackageReference>节点,看是否存在<IsLocked>true</IsLocked>的配置。如果有,删除这个锁定节点或者把值改成false,保存文件后重新加载项目。示例:<!-- 修改前 --> <PackageReference Include="Microsoft.WindowsAppSDK" Version="1.2.230117.4"> <IsLocked>true</IsLocked> </PackageReference> <!-- 修改后 --> <PackageReference Include="Microsoft.WindowsAppSDK" Version="1.2.230117.4" />清理NuGet缓存并重建项目
- 打开Visual Studio的「工具」菜单,选择「NuGet包管理器」->「包管理器设置」;
- 在「NuGet包管理器」->「常规」选项中点击「清除所有NuGet缓存」;
- 右键项目选择「清理」,再选择「生成解决方案」,之后重试NuGet操作。
确认.NET SDK版本兼容性
打开命令行运行dotnet --list-sdks查看本地.NET 7 SDK版本,确保是最新的稳定版。MAUI项目对SDK版本依赖严格,部分NuGet包的版本需要和SDK版本匹配,版本不兼容会导致包被锁定。移除NuGet锁定文件
找到项目目录下的packages.lock.json文件,删除它(建议先备份),然后重新打开项目,让NuGet自动重新生成依赖锁定文件,之后再尝试操作NuGet包。检查并更新MAUI工作负载
打开Visual Studio安装程序,选择「修改」,确认「.NET Multi-platform App UI开发」工作负载是最新版本,且包含所有相关可选组件(比如Windows App SDK组件)。更新完成后重启Visual Studio,再进行NuGet操作。手动修改包版本(兜底方案)
如果以上方法都无效,直接在.csproj文件中修改目标NuGet包的Version值为你需要的版本,保存后右键项目选择「还原NuGet包」,等待还原完成后检查是否生效。示例:<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.4.231008.100" />
内容的提问来源于stack exchange,提问作者perfectcode
相关产品推荐
相关产品推荐

