C#项目复制到另一台电脑后,NuGet包相关报错解决

在从别的电脑拷贝过来C#项目后,如果Visual Studio打开项目报错:

报错:当前 . NET SDK 不支持将 .NET Core 2.1.1 设置为目标。请将 .NET Core 2.1 或更低版本设置为目标,或使用支持 .NET Core 2.1.1 的 .NET SDK 版本。

可能是Visual Studio版本不一致,导致 .NET Core版本也不一致,首先可以用文本编辑器打开项目的.sln文件,确认该项目使用哪个版本Visual Studio创建,最好也使用该版本。

如果报错NuGet包还原失败,或者下面的两个报错:

错误	MSB4018	“ResolvePackageAssets”任务意外失败。
NuGet.Packaging.Core.PackagingException: 无法找到回退包文件夹“C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages”。
   在 NuGet.Packaging.FallbackPackagePathResolver..ctor(String userPackageFolder, IEnumerable`1 fallbackPackageFolders)
   在 Microsoft.NET.Build.Tasks.NuGetPackageResolver.CreateResolver(IEnumerable`1 packageFolders)
   在 Microsoft.NET.Build.Tasks.NuGetPackageResolver.CreateResolver(LockFile lockFile)
   在 Microsoft.NET.Build.Tasks.ResolvePackageAssets.CacheWriter..ctor(ResolvePackageAssets task)
   在 Microsoft.NET.Build.Tasks.ResolvePackageAssets.CacheReader.CreateReaderFromDisk(ResolvePackageAssets task, Byte[] settingsHash)
   在 Microsoft.NET.Build.Tasks.ResolvePackageAssets.CacheReader..ctor(ResolvePackageAssets task)
   在 Microsoft.NET.Build.Tasks.ResolvePackageAssets.ReadItemGroups()
   在 Microsoft.NET.Build.Tasks.ResolvePackageAssets.ExecuteCore()
   在 Microsoft.NET.Build.Tasks.TaskBase.Execute()
   在 Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
   在 Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()	zj.pc.cache	C:\Program Files\dotnet\sdk\3.1.403\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets	241	

错误	NETSDK1064	未找到版本为 5.0.0 的包 Microsoft.Win32.SystemEvents。它可能已在 NuGet 还原后删除。否则,NuGet 还原可能只是部分完成,这种情况可能是最大路径长度限制所导致。	zj.pc.cache	C:\Program Files\dotnet\sdk\3.1.403\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets	241	

可能是因为本地NuGet目录中缺少运行需要的包,需要:

1、打开Visual Studio->工具->选项->NuGet包管理器,

2、在常规中,程序包还原下面两项全部选中(默认选中的)

3、程序包源中,如果没有添加NeGut路径https://api.nuget.org/v3/index.json,点击右上角的加号按钮 ,添加一个新的Nuget源选项,名称随便取,源填写https://api.nuget.org/v3/index.json。然后点击更新,确定即可。如果https://api.nuget.org/v3/index.json不能访问,则添加一个新路径添加一个新的路径为https://www.nuget.org/api/v2。

4、如果有源包源勾掉禁用,没有忽视

 

然后编译,如果还报错的话,打开Visual Studio->工具->NuGet包管理器->管理解决方案的Nuget包,出现

PM>出现后,执行 dotnet build命令,待执行完,如果有没有成功的,继续执行,都成功了再调试。可能就搞定了。

 

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 如果在 Visual Studio 中添加项目引用时找不到 NuGet ,可能是因为 NuGet 没有正确安装或者还未更新到最新版本。可以尝试以下几个步骤来解决这个问题: 1. 确认 NuGet 已经正确安装,可以在“解决方案资源管理器”中查看项目的“引用”文件夹,看是否已经存在该 NuGet 。 2. 如果 NuGet 已经安装,但是仍然找不到,可以尝试更新 NuGet 至最新版本。可以在“工具”菜单中选择“NuGet 管理器”下的“管理解决方案的 NuGet ”,然后选择“已安装”选项卡,找到对应的 NuGet 并更新至最新版本。 3. 如果更新 NuGet 仍然无法解决问题,可以尝试手动添加引用。可以在“解决方案资源管理器”中右键选择“引用”文件夹,然后选择“添加引用”,在弹出的窗口中选择“浏览”选项卡,找到对应的 NuGet ,并添加引用。 希望这些步骤可以帮助你解决问题。 ### 回答2: 当在VS中添加项目引用时,如果找不到项目NuGet,可以按照以下步骤解决: 1. 确保已正确安装和配置了NuGet。 在VS中,打开“工具”菜单,选择“NuGet管理器”,然后选择“管理NuGet解决方案”。“NuGet管理器”窗口将打开,确保已正确安装和配置了NuGet。如果没有安装,可以从NuGet官方网站下载并安装。 2. 更新NuGet源。 在“NuGet管理器”窗口中,选择“工具”菜单,然后选择“选项”。在“NuGet管理器”选项中,选择“源”并确保添加了正确的NuGet源。可以尝试添加nuget.org作为源。 3. 恢复NuGet。 在VS中,右键单击解决方案中的项目,选择“管理NuGet”。“NuGet管理器”窗口将打开,在“已安装”选项卡下,选择出现问题的,然后点击“还原”按钮。这将重新安装丢失或损坏的NuGet。 4. 手动安装NuGet。 如果以上步骤都没有解决问题,可以考虑手动安装NuGet。在VS中,右键单击解决方案中的项目,选择“管理NuGet”。“NuGet管理器”窗口将打开,点击“浏览”选项卡,在搜索框中输入要安装的名称,然后点击“安装”按钮。 通过以上步骤,应该能够解决在VS中添加项目引用时找不到项目NuGet的问题。如果问题仍然存在,可以尝试更新VS和NuGet版本,或者查看官方文档和论坛,寻求更多帮助。 ### 回答3: 当我们使用Visual Studio添加项目引用时,有时会出现找不到项目NuGet的情况。这可能是由于以下几个原因导致的: 1. NuGet未被正确安装:在添加项目引用之前,我们需要确保我们已经在项目中安装了所需的NuGet。在Visual Studio解决方案资源管理器中,右键点击项目,并选择“管理NuGet程序”选项,然后检查所需的是否已安装。如果未安装,可以通过搜索名称并点击“安装”按钮来安装它们。 2. NuGet版本不兼容:有时候,我们在项目中引用的NuGet可能与项目的目标框架版本不兼容,导致无法添加引用。在这种情况下,我们可以尝试升级或降级NuGet的版本,以匹配项目的目标框架版本。 3. NuGet源设置不正确:如果我们使用了私有的NuGet源,我们需要确保在Visual Studio中正确配置了源。在Visual Studio的选项设置中,找到NuGet程序管理器”选项,并检查源设置是否正确。如果不正确,可以添加或编辑源,确保指向正确的服务器地址。 4. 解决方案清理和重新生成:有时候,解决方案的构建过程中可能会出现一些错误或冲突,导致无法找到项目NuGet。在这种情况下,我们可以尝试清理解决方案并重新生成,以确保所有依赖项都正确加载。 总结来说,当我们在Visual Studio无法找到项目NuGet时,我们需要检查是否已正确安装,版本是否兼容,源设置是否正确,并尝试解决方案的清理和重新生成。如果问题仍然存在,可以考虑更新或重新安装Visual Studio,并确保其与所使用的NuGet管理器兼容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值