我有一个像这样的项目结构:
WebApp
-- WebApp
-- WebApp.sln
WebApp.Tests
-- WebApp.Tests.csproj
我使用移动(简单点击并拖放到WebApp文件夹中)将WebApp.Tests移动到WebApp中。我编辑了WebApp.sln来修复项目引用,以便加载它。
当我构建时,Nuget抱怨包丢失并进行恢复。 我在我的解决方案上下载并使用了nuget.exe还原,它报告了所有内容。
根据其他StackOverflow答案,我尝试了以下内容:
所有这些都未能解决问题。当我使用包管理器尝试使用该命令重新安装包时,它给了我与项目构建相同的错误 - 我必须首先恢复包。
有没有快速的方法来修复我的项目?我真的不想通过每个包并手动卸载/重新安装。另外,我怎么能首先防止这个问题?是否有内置的方式来移动项目位置?
答案 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文件并替换每个实例 这个:
.. \包\
用这个:
.. \ .. \包\
它解决了这个问题......