复制NasaAPI解决方案至仓库后NuGet包丢失,恢复遇错求助
解决NETSDK1004错误:project.assets.json丢失导致NuGet包无法恢复
问题分析
复制解决方案到仓库目录后,已安装的NuGet包丢失,恢复时触发NETSDK1004错误,提示找不到project.assets.json文件。手动安装包要么失败要么提示文件缺失,核心问题是NuGet恢复流程被异常配置或环境问题打断。
解决步骤
1. 清理编译文件后重新恢复
- 直接删除项目目录下的
obj和bin文件夹(这两个是编译生成的临时文件,删除不会影响项目配置) - 打开终端,进入项目根目录(存放
NasaAPI.csproj的文件夹),执行命令:dotnet restore - 若使用Visual Studio,右键解决方案选择「清理解决方案」,之后再选择「还原NuGet包」
2. 修正.csproj中的错误配置
从你提供的.csproj文件来看,存在两处异常配置:
- 多余的项目文件引用:
<None Include="NasaAPI.csproj" />会把项目文件本身标记为资源文件,严重干扰NuGet恢复流程,直接删除整个对应ItemGroup:<ItemGroup> <None Include="NasaAPI.csproj" /> </ItemGroup> - 重复无效的包引用:
Json.Net是Newtonsoft.Json的旧名称,且版本1.0.33无效,删除Json.Net的引用,只保留Newtonsoft.Json。修正后的PackageReference组如下:<ItemGroup> <PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="6.0.15" /> <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="6.0.15" /> <PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="6.0.15" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="6.0.15" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.15" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.3" /> </ItemGroup>
3. 清理NuGet缓存
如果上述方法无效,大概率是NuGet缓存损坏,执行命令清理缓存:
dotnet nuget locals all --clear
清理完成后再次运行dotnet restore重新恢复包。
4. 检查路径与权限(针对macOS)
你的项目路径包含空格和特殊字符(Test Candidati.Noemi.Pintaldi.dev),macOS下部分工具对这类路径支持不佳,可尝试将项目移动到无空格的目录(比如/Users/noemipintaldi/Desktop/Nasa/NasaAPI/)后再重新恢复。同时检查项目目录的读写权限,确保你拥有修改目录的权限。
内容的提问来源于stack exchange,提问作者Selene_jpg
相关产品推荐
相关产品推荐

