Otwieranie projektu w programie Visual Studio kończy się niepowodzeniem z powodu błędu nie znaleziono nuget.targets

105

Więc pobrałem Twitterizer z http://www.twitterizer.net/downloads/

Próbuję otworzyć go w programie Visual Studio i uzyskać wszystkie te błędy 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.

Co się dzieje. Jak sobie z tym radzę?

Barka
źródło
5
Tylko uwaga na wypadek, gdyby ktoś inny wpadł w to. NuGet 2.7 wprowadził nowy typ przywracania pakietów. Jeśli spróbujesz dodać projekt, który używał starego stylu do rozwiązania, które używa nowego stylu, otrzymasz ten sam błąd. Aby to naprawić, należy przeprowadzić migrację projektu do nowego stylu: docs.nuget.org/docs/workflows/ ...
Slapout

Odpowiedzi:

171
  1. Zainstaluj Nuget.
  2. Kliknij rozwiązanie prawym przyciskiem myszy i wybierz opcję „Włącz przywracanie pakietu NuGet”. W programie Visual Studio 2013 i nowszych wybierz opcję „Przywróć pakiety NuGet”.
  3. Kliknij OK w ostrzeżeniu.
  4. Zamknij i ponownie otwórz rozwiązanie.

Powinien być teraz hunky-dory.

Frank Hagenson
źródło
2
Dzięki za to, byłoby miło, gdyby dali bardziej pomocny komunikat o błędzie w VS za to.
Rossisdead
2
Nadal otrzymuję ten błąd, mimo że nie dotyczy to już
nuget
Musisz wykonać obejście, wzmianki @Slapout (komentarz do pierwotnego pytania)
JasonS
Nadal nie działa, mówi, że nie ma już zależności do przywrócenia.
Usunąłem
23

Alternatywą jest edycja pliku .csproj za pomocą edytora tekstowego i usunięcie lub skomentowanie segmentu.

MeanGreen
źródło
4
Aby rozwinąć ten przypadek - jeśli przeniesiesz projekt z rozwiązania z jawnym plikiem .nuget \ nuget.targets do nowego, zobaczysz ten problem (nawet po przywróceniu pakietów NuGet). W takim przypadku należy utworzyć nuget .target lub ręcznie edytuj plik projektu.
ThisGuy
Zastosowałem również to rozwiązanie, ponieważ mój projekt nie korzystał z pakietów NuGet i wydaje się, że VS automatycznie wygenerował te rzeczy. Dzięki Bogu za kontrolę wersji, która umożliwiła usunięcie dodanych linii z .csproj.
Ivan G
Który segment należy usunąć?
Zapnologica
18

Ten błąd zwykle występuje, gdy próbujesz otworzyć .csprojbezpośrednio, a nie przez plik rozwiązania, i .csprojimportujesz cele Nuget w następujący sposób:

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

Aby go rozwiązać, możesz albo otworzyć, .slna nie .csprojbezpośrednio ... lub usunąć importpowyższą linię.

Zauważ, że wspomniany błąd wystąpi tylko wtedy, gdy używasz solution wiseprzywracania pakietów, co nie jest już zalecane.

André Pena
źródło
2
To jest problem, który miałem.
sparkyShorts
1
usunięcie „powyższego wiersza importu”. załatwił sprawę dla mnie. Dzięki!!
Bart,
5

Właśnie napotkałem ten sam problem, ale w moim przypadku problemem była spacja w nazwie folderu:

Nuget powiedział mi, że nie może znaleźć „C: \ git \ Moja ścieżka”, ale udało mi się przejść do „C: \ git \ Moja% 20Path”. Usunięcie miejsca w nazwie folderu „rozwiązało” problem.

Joe Zack
źródło
To był właśnie mój problem - bardzo dziękuję!
D.Nielsen
2

Wiem, że spóźniłem się na imprezę, ale tutaj jest naprawdę dobry poradnik, jak rozwiązać ten problem. Użyłem tego do naprawy mojego projektu.

Zamknij program Visual Studio Jeśli rozwiązanie, które próbujesz migrować, jest otwarte w programie Visual Studio, zmiany mogą zostać utracone. Program Visual Studio może w niektórych przypadkach zastąpić / zignorować zmiany, a rozszerzenie NuGet spróbuje również ponownie włączyć przywracanie pakietu, gdy zobaczy, że niektóre projekty w rozwiązaniu go nie mają.

Jeśli używasz TFS, Usuń pliki NuGet.exe i NuGet.targets z folderu .nuget rozwiązania. Upewnij się, że same pliki zostały również usunięte z obszaru roboczego rozwiązania. Zachowaj plik NuGet.Config, aby kontynuować pomijanie dodawania pakietów do kontroli źródła. Edytuj każdy plik projektu (np. .Csproj, .vbproj) w rozwiązaniu i usuń wszelkie odwołania do pliku NuGet.targets. Otwórz plik (i) projektu w wybranym edytorze i usuń następujące ustawienia:

prawdziwe ... ...

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

im. Więcej informacji znajdziesz w adresem http://go.microsoft.com/fwlink/?LinkID=322105 . Brakujący plik to {0}. Jeśli nie używasz TFS Usuń folder .nuget z rozwiązania. Upewnij się, że sam folder został również usunięty z obszaru roboczego rozwiązania. Edytuj każdy plik projektu (np. .Csproj, .vbproj) w rozwiązaniu i usuń wszelkie odwołania do pliku NuGet.targets. Otwórz plik (i) projektu w wybranym edytorze i usuń następujące ustawienia:

prawdziwe ... ...

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

im. Więcej informacji można znaleźć pod adresem http://go.microsoft.com/fwlink/?LinkID=322105 . Brakujący plik to {0}. Skrypt migracji Wielu użytkowników prosiło o narzędzie do migracji, aby wyłączyć przywracanie pakietów oparte na programie MSBuild i przekonwertować je na automatyczne przywracanie pakietów. Zespół NuGet zdecydował się nie udostępniać obsługiwanego narzędzia do tego z powodu wysokiego prawdopodobieństwa wystąpienia skrajnych przypadków, które byłyby nieobsługiwane. Jednak Owen Johnson jest autorem skryptu PowerShell, który może działać w wielu przypadkach. Jest dostępny na GitHub i można go używać na własne ryzyko. Innymi słowy, upewnij się, że wykonałeś kontrolę źródła przed jej uruchomieniem, na wypadek gdyby nie działała w twoim scenariuszu.

Poprawka Nuget.target

JEuvin
źródło
1

Kiedy pojawia się nuget.targets not foundbłąd, używam menedżera pakietów do uninstall-packagejednego z pakietów w projekcie, a następnie ponownie go instaluję za pomocą install-package. Wygląda na to, że wówczas ponownie generuje plik nugets.target.

Micheasza
źródło
1

Najłatwiejszym rozwiązaniem, gdy pojawi się ten błąd w celu przywrócenia brakującego NuGet.targetsw Eksploratorze rozwiązań programu Visual Studio, jest:

  1. Kliknij prawym przyciskiem myszy plik rozwiązania
  2. Z menu kontekstowego wybierz opcję „ Włącz przywracanie pakietu Nuget ...”

spowoduje to pobranie brakujących plików z „.nuget folderu ” :)

Powyższe zakłada, że ​​masz już zainstalowany Nuget - jeśli nie, postępuj zgodnie z zaakceptowaną odpowiedzią powyżej!

AKTUALIZACJA: Należy pamiętać, że w przypadku wersji programu Visual Studio po 2013 r. Opcja nosi nazwę „ Przywróć pakiety NuGet

Emil
źródło
1
Nie mam opcji włączania przywracania pakietu NuGet. Po prostu mam restore nuget packages.
Zapnologica
Zaktualizowałem odpowiedź - to jest nowa nazwa opcji menu po VS2013
Emil