【问题标题】:How can I fix missing nuget references after moving project in Visual Studio 2015在 Visual Studio 2015 中移动项目后如何修复缺少的 nuget 引用
【发布时间】:2015-11-10 11:03:19
【问题描述】:

我有一个这样的项目结构:

 WebApp
-- WebApp
-- WebApp.sln
 WebApp.Tests
-- WebApp.Tests.csproj

我使用移动将 WebApp.Tests 移动到 WebApp 中(只需单击并拖动到 WebApp 文件夹中)。我编辑了 WebApp.sln 以修复项目引用,以便加载。

当我构建时,Nuget 抱怨缺少包并进行恢复。 我下载并在我的解决方案上使用了 nuget.exe restore,它报告一切都在那里。

根据其他 Stack Overflow 答案,我尝试了以下方法:

  • 编辑测试项目参考提示路径。我从 ..\WebApp\packages\PACKAGE 更改为 ..\packages\PACKAGE
  • 重新加载 Visual Studio(多次)
  • 删除项目的packages文件夹和bin/obj文件夹的内容
  • 使用包管理器控制台在测试项目上重新安装包

所有这些都未能解决问题。当我使用包管理器尝试使用命令重新安装包时,它给了我与项目构建相同的错误 - 我必须先恢复包。

有什么方法可以快速修复我的项目吗?我真的不想通过每个包并手动卸载/重新安装。另外,我怎么能一开始就防止这个问题呢?是否有移动项目位置的内置方法?

【问题讨论】:

  • 在项目文件的底部可能有一个检查是否存在包文件夹或其某些内容。
  • 如果引用了跨项目引用或解决方案项(例如包),则移动项目通常会破坏内容。这就是解决方案文件夹(在解决方案资源管理器中)是虚拟的原因之一。
  • @jessehouwing 谢谢!检查是否存在具有旧相对路径的包。我以为这只是一个嵌入在项目文件中的错误报告,但是一旦我修复了 Exists(../project),它就编译得很好。

标签: visual-studio nuget visual-studio-2015


【解决方案1】:

在我的项目文件末尾有类似这样的 XML:

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
  <PropertyGroup>
    <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
  </PropertyGroup>
  <Error Condition="!Exists('..\WebApp\packages\SPECIFICPACKAGE')" Text="$([System.String]::Format('$(ErrorText)', '..\WebApp\packages\SPECIFICPACKAGE'))" />
</Target>

通过像文件的其余部分一样将 ..\Webapp\packages 更改为 ..\packages,我的解决方案现在可以正常编译了。

【讨论】:

  • 你知道如何从 nuget restore 命令恢复引用。我错误地删除了我所有的项目引用,我不想手动添加它。
  • 作为未来参考 - 我将我的项目移动到导致此问题的项目文件夹中。需要将..\packages 改为..\..\packages,然后将项目重新添加到解决方案中
  • 天哪,我以为我快疯了。再次,堆栈溢出来救援。现在我知道在应用程序中查看这些类型的幽灵的错误情况。
  • 对我来说,我只是删除了你提到的 XML
【解决方案2】:

我遇到了同样的问题,我将一个项目文件夹物理移动到 src 文件夹中,并得到了缺少包的错误。我的解决方法是在记事本中打开 .csproj 文件并替换 这个:

..\包\

用这个:

..\..\包\

解决了这个问题……

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-18
    • 2016-02-15
    • 2016-08-09
    • 2018-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多