更改存储库路径后如何重置 HintPath

Bre*_*ias 6 c# msbuild visual-studio nuget visual-studio-2012

我有一个包含多个项目的 Visual Studio 2012 解决方案。所有项目都无法构建,因为 NuGet 将包还原到的位置与各种 VS 项目中的所有hintPath 标记所指示的位置不同。

如何重置或删除整个解决方案中所有项目中的所有提示路径 - 以便可以建立依赖项的正确位置?

好吧,我是如何让自己陷入困境的如下:

  1. 在 VS 解决方案上方的目录中创建一个 nuget.config 文件。nuget.config 指向存储库文件夹“Alpha”。
  2. 将项目添加到 VS 解决方案,并在整个过程中添加 NuGet 包引用。
  3. 构建,一切正常。
  4. 关闭 Visual Studio 并编辑 nuget.config 文件(来自第 1 步),使其现在指向“Bravo”存储库文件夹
  5. 打开 Visual Studio 并重新加载 VS 解决方案。
  6. 如果包管理器说包丢失,请允许它下载丢失的包。
  7. 尝试构建 - 出现无数错误,说我可能忘记了声明命名空间。

所有包都已成功下载,并放置到新的存储库位置,但 VS 项目仍有指向旧位置的提示路径。更糟糕的是,Visual Studio 无法识别引用的程序集不再存在。解决方案资源管理器中的每个缺少的引用都不会显示黄色警告,而是就像找到了它们一样。

更改 NuGet 存储库路径不应使解决方案瘫痪且几乎无法修复。要求开发人员通过每个项目手动进行正则表达式搜索/替换数百个提示路径是愚蠢的。

Mat*_*ard 5

您可以尝试重新安装所有 NuGet 包。您可以在包管理器控制台窗口中执行此操作:

Update-Package -reinstall -ignoredependencies
Run Code Online (Sandbox Code Playgroud)

在运行此命令之前,我会确保您有源代码的备份或源代码管理中的代码。