在 Visual Studio 中打开项目失败,原因是 nuget.target 未找到错误

所以我从 http://www.twitterizer.net/downloads/下载了 Twitterizer

我尝试在 Visual Studio 中打开它,得到所有这些基本错误:

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.

怎么回事,我该怎么办?

48950 次浏览
  1. Install Nuget.
  2. Right click on the solution and select "Enable NuGet Package Restore". In Visual Studio 2013 and later, select "Restore NuGet Packages" instead.
  3. Click Ok on the warning.
  4. Close and re-open the solution.

Should now be hunky-dory.

An alternative is to edit the .csproj file with a texteditor and remove or comment out the segment.

When i get the nuget.targets not found error i use the package manager to uninstall-package one of the packages in the project and then reinstall it using install-package. It seems like it regenerates the nugets.target file then.

Easiest solution when you get this error in order to restore the missing NuGet.targets in Visual Studio Solution Explorer is to:

  1. Right click on the solution file
  2. From the context menu click "Enable Nuget Package Restore..." option

this will download the missing files in the ".nuget" folder :)

The above assumes you already have Nuget installed - if not follow the accepted answer above!

UPDATE: Please note for Visual Studio versions beyond 2013 the option is called "Restore NuGet Packages"

This error normally happens when you are trying to open a .csproj directly, not through the solution file, and the .csproj imports the Nuget targets like this:

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

In order to solve it, you can either open the .sln and not the .csproj directly...or remove the import line above.

Notice that the mentioned error will only happen when you are using solution wise package restore, which isn't even recommended anymore.

I know I'm late to the party but here is a really good tutorial on how to fix this issue. I used this to fix my project.

Close down Visual Studio If the solution you are trying to migrate is open in Visual Studio, then changes may be lost. Visual Studio may overwrite/ignore your changes in some cases and the NuGet extension will also try to re-enable Package Restore when it sees some projects in the solution are missing it.

If you are using TFS Remove the NuGet.exe and NuGet.targets files from the solution's .nuget folder. Make sure the files themselves are also removed from the solution workspace. Retain the NuGet.Config file to continue to bypass adding packages to source control. Edit each project file (e.g., .csproj, .vbproj) in the solution and remove any references to the NuGet.targets file. Open the project file(s) in the editor of your choice and remove the following settings:

true ... ...

<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}. If you are not using TFS Remove the .nuget folder from your solution. Make sure the folder itself is also removed from the solution workspace. Edit each project file (e.g., .csproj, .vbproj) in the solution and remove any references to the NuGet.targets file. Open the project file(s) in the editor of your choice and remove the following settings:

true ... ...

<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}. Migration Script Many users have requested a migration tool to disable the MSBuild-based package restore and convert to Automatic Package Restore. The NuGet team has decided not to provide a supported tool for this because of the high probability of edge cases that would be unhandled. However, Owen Johnson has authored a PowerShell script that can work in many cases. It's available on GitHub and can be used at your own risk. In other words, be sure to commit to source control before running it, just in case it doesn't work in your scenario.

Nuget.target Fix

Just ran into the same problem, but in my case the issue was a space in the folder name:

Nuget was telling me it couldn't find "C:\git\My Path" but I was able to navigate to "C:\git\My%20Path". Removing the space in the foldername "fixed" the issue.