由于找不到nuget.targets错误,因此在Visual Studio中打开项目失败


105

因此,我从http://www.twitterizer.net/downloads/下载了Twitterizer

我尝试在Visual Studio中将其打开,并得到所有这些nuget错误:

The imported project "C:\Twitterizer\.nuget\nuget.targets" was not found. 
Confirm that the path in the <Import> declaration is correct, and that the file 
exists on disk.

到底是怎么回事。我该如何处理?


5
请注意,以防其他任何人碰到这个问题。Nuget 2.7引入了一种新型的程序包还原。如果您尝试将使用旧样式的项目添加到使用新样式的解决方案中,则会遇到相同的错误。解决它的方法是将项目迁移到新的风格:docs.nuget.org/docs/workflows/...
Slapout

Answers:


171
  1. 安装Nuget。
  2. 右键单击解决方案,然后选择“启用NuGet软件包还原”。在Visual Studio 2013和更高版本中,请选择“还原NuGet程序包”。
  3. 单击警告上的确定。
  4. 关闭并重新打开解决方案。

现在应该是笨拙的。


2
谢谢您的帮助,如果他们在VS中给出了更有用的错误消息,那就太好了。
rossisdead 2014年

2
即使此错误不再适用于nuget 2.7,我仍然会收到此错误
thepaulpage

您需要执行变通方法@Slapout提及(对原始问题的评论)
JasonS 2015年

它仍然不能在这里工作,它表示没有更多要还原的依赖项。我已经删除了package文件夹并还原了几次:(
rodrigorf

23

一种替代方法是使用文本编辑器编辑.csproj文件,然后删除或注释掉该段。


4
要扩展这种情况-如果将项目从具有显式.nuget \ nuget.targets文件的解决方案移动到新的解决方案,则将看到此问题(即使在还原NuGet软件包之后也是如此)。在这种情况下,可以创建nuget .targets或手动编辑项目文件。
ThisGuy 2014年

我还应用了此解决方案,因为我的项目未使用任何NuGet包,而VS似乎已自动生成了这些东西。感谢Heaven的版本控制,使从.csproj中踢出添加的行成为可能。
伊万·格

一个必须删除哪个段?
Zapnologica

18

当您尝试.csproj直接打开而不是通过解决方案文件打开一个.csprojNuget目标时,通常会发生此错误:

<Import Project="$(SolutionDir)\.nuget\NuGet.targets" />

为了解决该问题,您可以打开.sln而不是.csproj直接打开...,或删除import上面的行。

请注意,提到的错误仅在使用solution wise程序包还原时才会发生,甚至不再建议这样做。


2
这是我遇到的问题。
sparkyShorts

1
删除“上面的导入行”。为我做了把戏。谢谢!!
巴特

5

只是遇到了同样的问题,但就我而言,问题是文件夹名称中的空格:

Nuget告诉我找不到“ C:\ git \ My Path”,但我能够导航到“ C:\ git \ My%20Path”。删除文件夹名称中的空格“已解决”问题。


这正是我的问题-非常感谢!
D.Nielsen

2

我知道我参加聚会很晚,但是这里有一个非常好的教程,说明如何解决此问题。我用它来修复我的项目。

关闭Visual Studio如果要迁移的解决方案在Visual Studio中打开,则更改可能会丢失。在某些情况下,Visual Studio可能会覆盖/忽略您的更改,并且当看到解决方案中的某些项目缺少它时,NuGet扩展还将尝试重新启用程序包还原。

如果使用的是TFS,请从解决方案的.nuget文件夹中删除NuGet.exe和NuGet.targets文件。确保文件本身也已从解决方案工作区中删除。保留NuGet.Config文件以继续绕过将程序包添加到源代码管理的过程。编辑解决方案中的每个项目文件(例如.csproj,.vbproj),并删除对NuGet.targets文件的任何引用。在您选择的编辑器中打开项目文件,然后删除以下设置:

没错……

<PropertyGroup>
    <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download

他们。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。丢失的文件是{0}。如果不使用TFS,请从解决方案中删除.nuget文件夹。确保文件夹本身也已从解决方案工作区中删除。编辑解决方案中的每个项目文件(例如.csproj,.vbproj),并删除对NuGet.targets文件的任何引用。在您选择的编辑器中打开项目文件,然后删除以下设置:

没错……

<PropertyGroup>
    <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download

他们。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。丢失的文件是{0}。迁移脚本许多用户已请求迁移工具来禁用基于MSBuild的程序包还原并将其转换为“自动程序包还原”。NuGet团队已决定不为此提供受支持的工具,因为边缘情况极有可能无法处理。但是,欧文·约翰逊(Owen Johnson)编写了可以在许多情况下运行的PowerShell脚本。它在GitHub上可用,使用风险自负。换句话说,请确保在运行源代码管理之前先提交源代码管理,以防万一它在您的方案中不起作用。

Nuget.target修复


1

当我收到nuget.targets not found错误消息时,我将软件包管理器用于uninstall-package项目中的软件包之一,然后使用进行重新安装install-package。好像它然后重新生成了nugets.target文件。


1

为了NuGet.targets在Visual Studio解决方案资源管理器中还原丢失的错误时,最简单的解决方案是:

  1. 右键单击解决方案文件
  2. 从上下文菜单中单击“ 启用Nuget软件包还原 ...”选项

这会将丢失的文件下载到“ .nuget”文件夹中:)

以上假设您已经安装了Nuget-如果未遵循上面接受的答案!

更新: 请注意,对于2013年以后的Visual Studio版本,该选项称为“ Restore NuGet Packages


1
我没有启用nuget包还原选项。我只是restore nuget packages
Zapnologica

更新了答案-这是VS2013之后的菜单选项的新名称
Emil
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.