Mở dự án trong Visual Studio không thành công do lỗi không tìm thấy nuget.targets


105

Vì vậy, tôi đã tải xuống Twitterizer từ http://www.twitterizer.net/downloads/

Tôi cố gắng mở nó trong Visual Studio và nhận được tất cả các lỗi nuget sau:

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.

Chuyện gì đang xảy ra. Làm thế nào để đối phó với điều này?


5
Chỉ cần một lưu ý trong trường hợp bất kỳ ai khác gặp phải điều này. Nuget 2.7 đã giới thiệu một kiểu khôi phục gói mới. Nếu bạn cố gắng thêm một dự án sử dụng kiểu cũ vào giải pháp sử dụng kiểu mới, bạn sẽ gặp lỗi tương tự. Cách khắc phục là di chuyển dự án sang kiểu mới: docs.nuget.org/docs/workflows/…
Slapout

Câu trả lời:


171
  1. Cài đặt Nuget.
  2. Nhấp chuột phải vào giải pháp và chọn "Bật Khôi phục Gói NuGet". Trong Visual Studio 2013 trở lên, hãy chọn "Khôi phục gói NuGet".
  3. Nhấp vào Ok trên cảnh báo.
  4. Đóng và mở lại giải pháp.

Bây giờ nên hunky-dory.


2
Cảm ơn vì điều này, sẽ rất tuyệt nếu họ đưa ra một thông báo lỗi hữu ích hơn trong VS cho điều đó.
rossisdead

2
Tôi vẫn gặp lỗi này mặc dù lỗi này không còn áp dụng cho
nuget

Bạn cần thực hiện giải pháp @Slapout đề cập (bình luận về câu hỏi ban đầu)
tên gọi là Jasons

Vẫn không hoạt động ở đây, nó nói rằng không có thêm phụ thuộc để khôi phục. Tôi đã xóa thư mục gói và khôi phục lại nó một vài lần :(
rodrigorf

23

Một giải pháp thay thế là chỉnh sửa tệp .csproj bằng trình soạn thảo văn bản và xóa hoặc nhận xét phân đoạn.


4
Để mở rộng về trường hợp này - nếu bạn di chuyển một dự án từ một giải pháp có tệp .nuget \ nuget.targets rõ ràng sang một tệp mới, bạn sẽ thấy vấn đề này (ngay cả sau khi khôi phục các gói NuGet.) Trong trường hợp này, hãy tạo một tệp .targets hoặc chỉnh sửa tệp dự án theo cách thủ công.
ThisGuy

Tôi cũng đã áp dụng giải pháp này vì dự án của tôi không sử dụng các gói NuGet và VS dường như đã tự động tạo nội dung này. Cảm ơn trời vì quyền kiểm soát phiên bản đã giúp bạn có thể bắt đầu các dòng bổ sung từ .csproj.
Ivan G

Người ta phải xóa phân đoạn nào?
Zapnologica

18

Lỗi này thường xảy ra khi bạn đang cố gắng mở .csprojtrực tiếp, không thông qua tệp giải pháp và .csprojnhập các mục tiêu Nuget như sau:

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

Để giải quyết nó, bạn có thể mở .slnvà không .csprojtrực tiếp ... hoặc xóa importdòng trên.

Lưu ý rằng lỗi đã đề cập sẽ chỉ xảy ra khi bạn đang sử dụng solution wisekhôi phục gói, điều này thậm chí không được khuyến nghị nữa.


2
Đây là vấn đề mà tôi đã có.
sparkyShorts

1
loại bỏ "dòng nhập ở trên." đã làm thủ thuật cho tôi. Cảm ơn!!
Bart

5

Vừa gặp phải vấn đề tương tự, nhưng trong trường hợp của tôi, vấn đề là khoảng trắng trong tên thư mục:

Nuget nói với tôi rằng nó không thể tìm thấy "C: \ git \ My Path" nhưng tôi có thể điều hướng đến "C: \ git \ My% 20Path". Xóa không gian trong tên thư mục "đã khắc phục" sự cố.


Đây chính xác là vấn đề của tôi - cảm ơn bạn rất nhiều!
D.Nielsen

2

Tôi biết mình đã đến bữa tiệc muộn nhưng đây là một hướng dẫn thực sự tốt về cách khắc phục sự cố này. Tôi đã sử dụng điều này để sửa chữa dự án của mình.

Đóng Visual Studio Nếu giải pháp bạn đang cố gắng di chuyển đang mở trong Visual Studio, thì các thay đổi có thể bị mất. Visual Studio có thể ghi đè / bỏ qua các thay đổi của bạn trong một số trường hợp và tiện ích mở rộng NuGet cũng sẽ cố gắng bật lại Khôi phục gói khi thấy một số dự án trong giải pháp bị thiếu.

Nếu bạn đang sử dụng TFS Xóa các tệp NuGet.exe và NuGet.targets khỏi thư mục .nuget của giải pháp. Đảm bảo rằng bản thân các tệp cũng được xóa khỏi không gian làm việc của giải pháp. Giữ lại tệp NuGet.Config để tiếp tục bỏ qua việc thêm gói vào kiểm soát nguồn. Chỉnh sửa từng tệp dự án (ví dụ: .csproj, .vbproj) trong giải pháp và xóa mọi tham chiếu đến tệp NuGet.targets. Mở (các) tệp dự án trong trình chỉnh sửa bạn chọn và xóa các cài đặt sau:

thật ... ...

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

chúng. Để biết thêm thông tin, hãy xem http://go.microsoft.com/fwlink/?LinkID=322105 . Tệp bị thiếu là {0}. Nếu bạn không sử dụng TFS Xóa thư mục .nuget khỏi giải pháp của bạn. Đảm bảo rằng chính thư mục đó cũng được xóa khỏi không gian làm việc của giải pháp. Chỉnh sửa từng tệp dự án (ví dụ: .csproj, .vbproj) trong giải pháp và xóa mọi tham chiếu đến tệp NuGet.targets. Mở (các) tệp dự án trong trình chỉnh sửa bạn chọn và xóa các cài đặt sau:

thật ... ...

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

chúng. Để biết thêm thông tin, hãy xem http://go.microsoft.com/fwlink/?LinkID=322105 . Tệp bị thiếu là {0}. Tập lệnh di chuyển Nhiều người dùng đã yêu cầu một công cụ di chuyển để tắt khôi phục gói dựa trên MSBuild và chuyển đổi thành Khôi phục gói tự động. Nhóm NuGet đã quyết định không cung cấp công cụ hỗ trợ cho việc này vì khả năng cao các trường hợp cạnh sẽ không được xử lý. Tuy nhiên, Owen Johnson đã là tác giả của tập lệnh PowerShell có thể hoạt động trong nhiều trường hợp. Nó có sẵn trên GitHub và bạn có thể tự chịu rủi ro khi sử dụng. Nói cách khác, hãy đảm bảo cam kết kiểm soát nguồn trước khi chạy nó, đề phòng trường hợp nó không hoạt động trong kịch bản của bạn.

Nuget.target Fix


1

Khi tôi gặp nuget.targets not foundlỗi, tôi sử dụng trình quản lý gói cho uninstall-packagemột trong các gói trong dự án và sau đó cài đặt lại bằng cách sử dụng install-package. Có vẻ như nó sẽ tạo lại tệp nugets.target sau đó.


1

Giải pháp dễ nhất khi bạn gặp lỗi này để khôi phục phần bị thiếu NuGet.targetstrong Visual Studio Solution Explorer là:

  1. Nhấp chuột phải vào tệp giải pháp
  2. Từ menu ngữ cảnh, nhấp vào tùy chọn " Bật Khôi phục Gói Nuget ..."

điều này sẽ tải xuống các tệp bị thiếu trong .nugetthư mục "" :)

Ở trên giả sử bạn đã cài đặt Nuget - nếu không làm theo câu trả lời được chấp nhận ở trên!

CẬP NHẬT: Xin lưu ý đối với các phiên bản Visual Studio ngoài 2013, tùy chọn được gọi là " Khôi phục gói NuGet "


1
Tôi không có tùy chọn kích hoạt khôi phục gói nuget. Tôi chỉ có restore nuget packages.
Zapnologica

Cập nhật câu trả lời - đây là tên mới của tùy chọn menu sau VS2013
Emil
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.