我正在尝试在 Visual Studio (.NET Framework 4.72) 中运行单元测试项目。
项目现在已经成功构建/运行,但是仍然出现NuGet包无法恢复的错误(文件路径实际上是错误的并且不存在)。如何更改为正确的文件路径并告诉 VS 不要查找错误的路径? 错误如下:
项目 Tests_WeatherData 的 NuGet 包还原失败:找不到路径 'C:......\Begin\packages\MSTest.TestAdapter.1.3.2 uild/_common/zh-Hans/Microsoft.VisualStudio 的一部分.TestPlatform.MSTestAdapter.PlatformServices.resources.dll'
感谢您提供有关如何更改文件路径/恢复设置的任何建议。
这可能是由于您的项目位于嵌套太深的子文件夹中造成的。我认为文件夹路径可能有一些限制,比如 250 个字符或类似的东西。
当我下载带有一些演示项目的 zip 时,我看到了同样的错误,当我解压缩它时,它创建了一个包含许多子文件夹的文件夹。我感兴趣的项目位于子文件夹的深处,当我尝试恢复其 NuGet 包时,我遇到了相同的错误。
我将项目文件夹移至靠近 c:\ 的位置,然后恢复错误就消失了。
这对我有用。
从此处下载 nuget.exe。
将此 nuget.exe 可执行文件复制到包含当前无法构建的解决方案的文件夹。
确保 LongPathsEnabled 注册表项设置为 1。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled
打开cmd提示符,导航到上述文件夹位置。运行以下命令。
c: epos\MySolutionFolder>nuget.exe 恢复
在 Visual Studio 中构建解决方案。就我而言,我使用的是 VS2019。
帮助我完成这些步骤的链接 - Github-Issue。
问题可能是 CSPROJ 文件中的文件路径。最常见的原因是项目重组,
packages
的位置发生了变化。
除了 CSPROJ 中的 NUGET 引用之外,CSPROJ 的页脚或 MSTest 适配器条目的标头部分中可能还有一些其他位置。 IE。只需验证所有文件路径(尤其是相对的)都正确并重新加载/重建。
更新 Nuget 包后,Visual Studio 在我的待更改列表中包含了新添加的旧版本和更新版本的文件夹。旧版本显然已经不存在了,因为它在 Nuget 更新包时被删除了。我必须手动排除以旧版本号命名的文件夹。
解决长路径问题的另一个选项是使用管理员权限从 Powershell 中执行此操作。 (右键单击并选择“以管理员身份运行”)。
关闭 Visual Studio
将以下内容粘贴到 Powershell 中:
新项目属性
-Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem"
-名称“LongPathsEnabled”-Value 1
-PropertyType DWORD `
-力量
导航到项目目录并运行以下命令,通过 Powersell 添加 NuGet 包:
dotnet 添加包