You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS2022拆分主解决方案项目后NuGet引用无法识别已安装包问题求助

问题根因

原测试项目使用旧式packages.config NuGet管理模式,默认将包存储在解决方案同级的packages目录,项目文件内硬编码了指向该目录的props导入路径。迁移到新解决方案后目录结构变化,相对路径失效;手动转换PackageReference未生效是因为旧的硬编码Import节点未被自动清理,残留配置优先级高于PackageReference的默认规则。

解决步骤
  • 清理项目残留旧配置

    卸载测试项目,右键选择「编辑项目文件」,删除所有指向..\packages目录的<Import>、<Target>节点,包含你提到的MSTest.TestAdapter.props导入配置。同时删除项目目录下残留的packages.config文件(如果存在)。
  • 强制迁移到PackageReference格式

    1. 右键新解决方案,选择「管理解决方案的NuGet包」,点击右上角设置图标进入NuGet配置页
    2. 在「常规」标签下,将默认包管理格式设置为PackageReference,勾选「允许在首次安装包时选择格式」后保存
    3. 右键测试项目,选择「将packages.config迁移到PackageReference」,等待VS扫描完成后确认迁移结果无报错即可
  • 验证与兜底配置

    重新加载项目后,右键解决方案选择「还原NuGet包」并执行编译。如果仍有报错,可在项目文件的首个<PropertyGroup>节点内添加如下配置,强制指定包读取路径:
    <RestorePackagesPath>$(UserProfile)\.nuget\packages</RestorePackagesPath>
    
注意事项
  • 检查新解决方案目录下的nuget.config文件,如有配置<add key="repositoryPath" value="xxx/packages" />的节点,直接删除该配置项
  • 清理解决方案和项目目录下的旧packages文件夹,避免残留文件干扰配置

内容的提问来源于stack exchange,提问作者Gratzy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 05:06:03