Opening project in Visual Studio fails due to nuget.targets not found error
Asked Answered
N

7

109

So I downloaded Twitterizer from http://www.twitterizer.net/downloads/

I try to open it in Visual Studio and get all these nuget errors:

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.

What is going on. How do I deal with this?

Nissy answered 3/2, 2012 at 18:46 Comment(1)
Just a note in case anyone else runs into this. Nuget 2.7 introduced a new type of package restore. If you try to add a project that used the old style to a solution that uses the new style you'll get this same error. The way to fix it is to migrate the project to the new style: docs.nuget.org/docs/workflows/…Working
F
174
  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.

Fructificative answered 10/2, 2012 at 10:20 Comment(4)
Thanks for this, would be nice if they gave a more helpful error message in VS for that.Generality
I'm still getting this error even though this no longer applies to nuget 2.7Sonde
You need to do the workaround @Working mentions (comment on the original question)Andromache
Still not working here, it says that there is no more dependencies to restore. I have already deleted the package folder and restore it a couple of times :(Galenical
D
23

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

Daughtry answered 25/3, 2013 at 13:43 Comment(3)
To expand on this case - if you move a project from a solution with an explicit .nuget\nuget.targets file to a fresh one, you will see this problem (even after restoring NuGet packages.) In this case, either create the nuget.targets or edit the project file manually.Datolite
I also applied this solution since my project used non of the NuGet packages and VS seems to have auto-generated this stuff. Thanks heaven for version control that made it possible to kick-out the added lines from .csproj.Unicef
Which segment must one remove?Featly
T
19

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.

Tableware answered 28/8, 2015 at 21:15 Comment(2)
This is the issue that I had.Siding
removal of "the import line above." did the trick for me. Thanks!!Binaural
C
7

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.

Cuirass answered 23/6, 2016 at 16:48 Comment(0)
N
2

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

Nadanadab answered 19/5, 2016 at 14:20 Comment(0)
S
1

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.

Shadchan answered 27/6, 2013 at 21:25 Comment(0)
L
1

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"

Lafollette answered 12/5, 2014 at 9:42 Comment(2)
I don't have the enable nuget package restore option. I just have restore nuget packages.Featly
Updated the answer - this is the new name of the menu option after VS2013Lafollette

© 2022 - 2024 — McMap. All rights reserved.