2012-02-03 37 views
99

Vì vậy, tôi đã tải về Twitterizer từ http://www.twitterizer.net/downloads/dự án khai mạc trong Visual Studio thất bại do nuget.targets không tìm thấy lỗi

tôi cố gắng để mở nó trong Visual Studio và nhận được tất cả các lỗi này 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. 

gì đang diễn ra. Làm cách nào để giải quyết vấn đề này?

+5

Chỉ cần lưu ý trong trường hợp bất kỳ ai khác thực hiện việc 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ũ cho một giải pháp sử dụng kiểu mới, bạn sẽ nhận được lỗi tương tự này. Cách khắc phục nó là di chuyển dự án sang kiểu mới: http: //docs.nuget.org/docs/workflow/migrating-to-automatic-package-restore – Slapout

Trả lời

166
  1. Cài đặt Nuget.
  2. Nhấp chuột phải vào giải pháp và chọn "Bật NuGet Khôi phục gói".
  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ờ phải là hunky-dory.

+2

Cảm ơn vì điều này, sẽ tốt đẹp 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 nhận được lỗi này mặc dù điều này không còn áp dụng cho nuget 2.7 – thepaulpage

+0

Bạn cần thực hiện giải pháp @Slapout giải pháp (nhận xét về câu hỏi gốc) – JasonS

20

Cách khác là chỉnh sửa tệp .csproj bằng trình chỉnh sửa văn bản và xóa hoặc nhận xét phân đoạn.

+3

Để mở rộng trong 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 tệp mới, bạn sẽ thấy vấn đề (ngay cả sau khi khôi phục các gói NuGet.) Trong trường hợp này, hãy tạo nuget.targets hoặc chỉnh sửa tệp dự án theo cách thủ công – ThisGuy

+0

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 gói NuGet và VS dường như đã tự động tạo Cảm ơn trời để kiểm soát phiên bản mà làm cho nó có thể kick-out các dòng được thêm từ .csproj –

+0

Phân khúc nào phải loại bỏ? – Zapnologica

1

Khi tôi gặp lỗi nuget.targets not found tôi sử dụng trình quản lý gói để uninstall-package mộ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. Nó có vẻ như nó tái tạo các tập tin nugets.target sau đó.

1

giải pháp dễ nhất khi bạn nhận được lỗi này để khôi phục lại thiếu NuGet.targets trong Visual Studio Solution Explorer là:

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

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

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

UPDATE: Xin lưu ý cho các phiên bản Visual Studio vượt 2013 tùy chọn được gọi là "Restore NuGet Packages"

+0

Tôi không có tùy chọn khôi phục gói nuget cho phép. Tôi chỉ có 'khôi phục gói nuget' – Zapnologica

+0

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

11

Lỗi này thường xảy ra khi bạn đang cố gắng để mở một .csproj trực tiếp, không thông qua các giải pháp tập tin, và các .csproj nhập khẩu các chỉ tiêu NuGet như thế này:

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

để giải quyết nó, bạn có thể mở .sln và không phải là số .csproj trực tiếp ... hoặc xóa dòng import ở trên.

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

+1

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

1

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

Đóng Visual Studio Nếu giải pháp bạn đang tìm cách di chuyển là mở trong Visual Studio, thì 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 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, hãy 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 các tệp cũng bị xóa khỏi không gian làm việc của giải pháp . Giữ lại tập tin NuGet.Config để tiếp tục bỏ qua việc thêm các 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 bất kỳ tham chiếu nào vào tệp NuGet.targets. Mở hồ sơ dự án (s) trong biên tập viên của bạn lựa chọn và loại bỏ các thiết lập sau đây:

đúng ... ...

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

họ. Để 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 phải là 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 thư mục cũng bị 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 bất kỳ tham chiếu nào vào tệp NuGet.targets. Mở hồ sơ dự án (s) trong biên tập viên của bạn lựa chọn và loại bỏ các thiết lập sau đây:

đúng ... ...

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

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

Nuget.target Fix

1

Chỉ cần chạy vào cùng một vấn đề, nhưng trong trường hợp của tôi vấn đề này là một không gian trong tên thư mục:

NuGet đã nói với tôi 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 ". Loại bỏ không gian trong tên người dùng "cố định" vấn đề.

Các vấn đề liên quan