在Visual Studio 2015中移动项目后,如何修复缺少的nuget引用

Nat*_*tze 25 visual-studio nuget visual-studio-2015

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

 WebApp
-- WebApp
-- WebApp.sln
 WebApp.Tests
-- WebApp.Tests.csproj
Run Code Online (Sandbox Code Playgroud)

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

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

基于其他StackOverflow答案,我尝试了以下内容:

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

所有这些都无法解决问题.当我使用的软件包管理器尝试使用以下命令重新安装的软件包,它给了我同样的错误该项目建设不 - 我必须首先恢复的包.

有没有快速的方法来修复我的项目?我真的不想通过每个包并手动卸载/重新安装.另外,我怎么能首先防止这个问题?是否有内置的方式来移动项目位置?

Nat*_*tze 36

在项目文件的末尾有类似的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>
Run Code Online (Sandbox Code Playgroud)

通过将..\Webapp\packages更改为..\packages,就像文件的其余部分一样,我的解决方案现在编译得很好.

  • 作为将来的参考 - 我将我的项目移动到导致此问题的项目文件夹中。`..\packages` 需要改成 `..\..\packages` 然后将项目重新添加到解决方案中 (2认同)

小智 15

我有同样的问题,我将项目文件夹物理移动到src文件夹,并得到丢失的包错误.我的解决方法是在记事本中打开.csproj文件并替换每个实例:

.. \包\

有了这个:

..\.. \包\

它解决了这个问题......