恢复项目的 NuGet 包失败...:找不到路径的一部分

Mar*_*ner 8 c# unit-testing visual-studio nuget-package-restore visual-studio-2022

我正在尝试在 Visual Studio (.NET Framework 4.72) 中运行单元测试项目。

现在项目已经成功构建/运行,但是仍然出现NuGet包无法恢复的错误(文件路径实际上是错误的并且不存在)。如何更改为正确的文件路径并告诉 VS 不要查找错误的路径?这是错误:

项目 Tests_WeatherData 的 NuGet 包还原失败:找不到路径 'C:......\Begin\packages\MSTest.TestAdapter.1.3.2\build/_common/zh-Hans/Microsoft.VisualStudio 的一部分。 TestPlatform.MSTestAdapter.PlatformServices.resources.dll'

感谢您提供有关如何更改文件路径/恢复设置的任何建议。

Gar*_*ett 17

这可能是由于您的项目位于嵌套太深的子文件夹中造成的。我认为文件夹路径可能有一些限制,比如 250 个字符或类似的东西。

当我下载带有一些演示项目的 zip 时,我看到了同样的错误,当我解压缩它时,它创建了一个包含许多子文件夹的文件夹。我感兴趣的项目位于子文件夹的深处,当我尝试恢复其 NuGet 包时,我遇到了相同的错误。

我将项目文件夹移到靠近 c:\ 的位置,然后恢复错误就消失了。


Amo*_*atu 9

这对我有用。

  1. 从这里下载 nuget.exe 。 可以下载 nuget.exe 的链接的屏幕截图,其中箭头指向页面上下载链接的位置。

  2. 将此 nuget.exe 可执行文件复制到包含当前无法构建的解决方案的文件夹。

  3. 确保 LongPathsEnabled 注册表项设置为 1。

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled

  4. 打开cmd提示符,导航到上述文件夹位置。运行以下命令。

    c:\repos\MySolutionFolder>nuget.exe 恢复

  5. 在 Visual Studio 中构建解决方案。就我而言,我使用的是 VS2019。

帮助我完成这些步骤的链接 - Github-Issue


Hou*_*Cat 1

问题可能是 CSPROJ 文件中的文件路径。最常见的原因是项目重组和地点packages发生变化。

除了 CSPROJ 中的 NUGET 引用之外,CSPROJ 的页脚或 MSTest 适配器条目的标头部分中可能还有一些其他位置。即只需验证所有文件路径(尤其是相对的)都正确并重新加载/重建。