c# - 如何在更改存储库路径后重置 HintPath

标签 c# visual-studio visual-studio-2012 msbuild nuget

我有一个包含多个项目的 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 存储库路径不应使解决方案瘫痪并且几乎无法修复。要求开发人员在每个项目中手动搜索/替换数百个提示路径的正则表达式是笨拙的。

最佳答案

你可以试试 reinstalling all the NuGet packages .您可以在包管理器控制台窗口中执行此操作:

Update-Package -reinstall -ignoredependencies

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

关于c# - 如何在更改存储库路径后重置 HintPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24174474/

相关文章:

c# - C# 中带有附加行的十字准线光标

c - 修复 MSVC 编译器错误 C1074 : Illegal extension

c# - 添加或减去的值会导致无法表示的 DateTime。参数名称

wpf - 为什么我使用 Label 时 Visual Studio 会在 XAML 中提示错误?

c++ - 在 vector 中添加相邻字符

c# - DryIoc 在实例解析之前调用异步初始化方法

c# - 在 Dapper.NET 中使用 varbinary 参数

c# - Windows Phone 7,silverlight - 如何在调用异步 Web 服务时捕获 EndpointNotFoundException?

c# - 在代码 (.cs) 文件中插入图像

c# - 如何在 Visual Studio 中为 Windows 计算机上的 Xamarin 应用程序设计用户界面?