C# 缺少Nuget.targets

C# 缺少Nuget.targets,c#,visual-studio,nuget,nuget-package-restore,C#,Visual Studio,Nuget,Nuget Package Restore,我是C#和Visual Studio 2017的网络用户。似乎VS说Nuget包丢失了。当我尝试构建解决方案时,控制台输出以下内容: 此项目引用了此计算机上缺少的NuGet程序包。请启用NuGet程序包还原以下载它们。有关详细信息,请参阅。缺少的文件是D:\xxxx\xxxx\Desktop\Koodipohjaa\trunk\.NuGet\NuGet.targets 项目将从原始位置复制到桌面(因为某些原因)。在/trunk/I中有一个名为“packages”的文件夹,但没有“.nuget”文

我是C#和Visual Studio 2017的网络用户。似乎VS说Nuget包丢失了。当我尝试构建解决方案时,控制台输出以下内容:

此项目引用了此计算机上缺少的NuGet程序包。请启用NuGet程序包还原以下载它们。有关详细信息,请参阅。缺少的文件是D:\xxxx\xxxx\Desktop\Koodipohjaa\trunk\.NuGet\NuGet.targets

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


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

在Visual Studio 2010和Visual Studio 2013之间,
.nuget/nuget.targets
是nuget与Visual Studio的旧“集成”。Visual Studio 2015及以后版本不再具有创建此文件的功能,因为NuGet的集成更加直接。因为您复制了项目,而不是整个解决方案,所以没有复制
.nuget/
文件夹。您说过在源代码repo中没有
.nuget
文件夹,但我不知道原始解决方案如何能够成功编译

我建议你按照说明去做。这只是撤销了VS2013及更早版本中“启用包还原”所做的操作。

请尝试:

1.在VS2017中,go Tools menu=>Nuget Package Manager=>Package Manager设置,确保您已选中以下两个选项:

2.在解决方案资源管理器中右键单击项目=>
卸载项目
=>右键单击项目名称并
编辑xx.csproj
,您将找到以下格式的
EnsureUnsureUngueTPackageBuildImports
目标:

<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>

此项目引用此计算机上缺少的NuGet包。使用NuGet Package Restore下载它们。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkID=322105. 缺少的文件是{0}。
删除目标并保存文件。然后右键单击项目以重新加载项目并运行重建


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

正如您所说,您将项目从其他位置复制到桌面,我假设您没有复制sln文件。尝试在桌面上添加sln文件,然后将项目添加到该sln,然后尝试恢复nuget。需要记住的一点是,请尝试确保文件夹结构相对于sln文件和项目位置具有层次结构

这个问题很容易解决。由于.nuget文件夹是必需的,我设法获得了该文件夹的副本并将其粘贴到正确的位置。我在VS2017和2019上尝试了很多技巧和技巧,但都没有奏效。现在.nuget文件夹已经存在,一切都正常。

我复制了解决方案以及该解决方案中的所有子项目,就像它们在原始位置一样。另外,该解决方案是用我目前使用的VS 2017制作的。Visual Studio 2017从未具有创建
.nuget/nuget.targets
文件的功能,因此不可能在那里创建该文件。在VS2019中创建新项目并将所有其他文件复制到新项目中,或者按照我链接到的文档中的说明进行操作,并从csproj中删除对nuget.targets的引用。我在帮助其他客户解决另一个问题时写道,在这里我列出了当您使用VS2010-VS2013功能时,csproj中写入的内容,因此,您可以确切地看到从您的csproj中删除哪些内容是好的。更多信息:-整个解决方案和子项目都是复制的-最初该解决方案是由Visual Studio 2017 professional制作的,我使用的是2017社区-所有开发都是由Visual Studio 2017Hi friend完成的,对此问题有任何更新吗?请让我知道这个问题是否仍然存在:(嗨,朋友,谢谢你的分享,请将你的回复标记为答案,这将帮助其他社区成员更容易搜索这些有用的信息。请看,这只是一个提醒:)非常感谢。这是唯一对我有效的解决方案。不管我做了什么,这个目标都把整个过程搞砸了。我从VS2015搬到VS2019。这应该被标记为答案。