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

时间:2015-08-17 17:50:40

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

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

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

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

当我构建时,Nuget抱怨包丢失并进行恢复。 我在我的解决方案上下载并使用了nuget.exe还原,它报告了所有内容。

根据其他StackOverflow答案,我尝试了以下内容:

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

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

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

2 个答案:

答案 0 :(得分:35)

在项目文件的末尾有类似的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,就像文件的其余部分一样,我的解决方案现在编译得很好。

答案 1 :(得分:14)

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

  

.. \包\

用这个:

  

.. \ .. \包\

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