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:\ 的位置,然后恢复错误就消失了。
这对我有用。
从这里下载 nuget.exe 。

将此 nuget.exe 可执行文件复制到包含当前无法构建的解决方案的文件夹。
确保 LongPathsEnabled 注册表项设置为 1。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled
打开cmd提示符,导航到上述文件夹位置。运行以下命令。
c:\repos\MySolutionFolder>nuget.exe 恢复
在 Visual Studio 中构建解决方案。就我而言,我使用的是 VS2019。
帮助我完成这些步骤的链接 - Github-Issue。
问题可能是 CSPROJ 文件中的文件路径。最常见的原因是项目重组和地点packages发生变化。
除了 CSPROJ 中的 NUGET 引用之外,CSPROJ 的页脚或 MSTest 适配器条目的标头部分中可能还有一些其他位置。即只需验证所有文件路径(尤其是相对的)都正确并重新加载/重建。