缺少 Nuget.targets

OPM*_*nen 3 c# visual-studio nuget nuget-package-restore

我很熟悉 C# 和 Visual Studio 2017。似乎 VS 说缺少 Nuget 包。当我尝试构建解决方案时,控制台输出以下内容:

“此项目引用了此计算机上缺少的 NuGet 包。启用 NuGet 包还原以下载它们。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkID=322105。丢失的文件是D:\xxxx\xxxx\Desktop\Koodipohjaa\trunk\.nuget\NuGet.targets"

项目从原始位置复制到桌面(因为原因)。在 /trunk/ 中,我有一个名为“packages”的文件夹,但没有“.nuget”文件夹。我已经尝试了解决方案级别的“恢复 nuget 包”,它说没有什么可更新的。当我打开项目的参考资料时,有一个非常可爱的黄色小三角形,里面有所有的包。

我尝试更新软件包,将它们全部删除并自动重新安装它们等。在“nuget 软件包管理器”中,我尝试了所有可能的软件包还原。

Lan*_*SFT 5

请尝试:

1.在VS2017?go Tools menu=>Nuget Package Manager=>Package Manager settings,确保你已经选中了这两个选项,如下所示:

在此处输入图片说明

2.在解决方案资源管理器中右击项目=> Unload Project=> 右击项目名称和Edit the xx.csproj,你会发现一个EnsureNuGetPackageBuildImports这样格式的目标:

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
    <PropertyGroup>
      <ErrorText>This project references NuGet package(s) that are missing on this computer. Use 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('..\packages\xxx')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\xxx'))" />
  </Target>
Run Code Online (Sandbox Code Playgroud)

删除目标并保存文件。然后右键单击该项目以重新加载该项目并运行重建。

我假设您的项目文件(xx.csproj)中可能有这样的目标,它试图找到该nuget.targets文件,删除目标以检查它是否有帮助。类似问题请参见此处


ziv*_*kan 2

.nuget/nuget.targets是 Visual Studio 2010 到 Visual Studio 2013 之间 NuGet 与 Visual Studio 的旧“集成”。从 Visual Studio 2015 开始,不再具有创建此文件的功能,因为 NuGet 的集成更直接。由于您复制了项目,而不是整个解决方案,因此您没有复制.nuget/文件夹。您说源存储库中没有.nuget文件夹,但我不知道原始解决方案如何成功编译。

我建议您按照有关如何迁移到自动包恢复的说明进行操作。它只是撤销 VS2013 及更早版本中“启用包恢复”所做的事情。