2010-09-08 139 views
23

Tôi đã phát triển một thư viện lớp học khá lâu và đột ngột, đôi khi tuần trước, tôi đã mở dự án và tất cả các tài liệu tham khảo của tôi đều có dấu chấm than màu vàng trên chúng (System.dll, System.Drawing.dll, vv ..). Tôi đã thử xóa các tham chiếu và thêm lại chúng để sửa bất kỳ đường dẫn tham chiếu bị hỏng nào nhưng chúng vẫn tiếp tục hiển thị các dấu chấm than màu vàng trên chúng.Tại sao tất cả các tham chiếu của tôi có dấu chấm than màu vàng trên chúng trong thư viện lớp .NET của tôi?

Không có gì thay đổi kể từ lần cuối tôi mở dự án. Điều duy nhất khác với lần cuối cùng tôi mở dự án là lần này tôi đã mở nó từ trực tiếp bên trong .NET từ một dự án khác. Ví dụ, tôi đã làm việc trên một dự án web .NET 3.5, sau đó nhấp vào Tệp -> Mở tệp gần đây -> Giải pháp khác của tôi. Điều này đã đóng giải pháp web 3.5 hiện tại của tôi và mở giải pháp thư viện lớp 2.0 và vấn đề xuất hiện lần đầu tiên. Tôi không chắc làm thế nào (hoặc tại sao) điều này sẽ gây ra một vấn đề, nhưng tôi nghiêng về phía thực tế là Visual Studio đã nhầm lẫn hoặc một cái gì đó và bây giờ hội đồng của tôi là tất cả không hợp lệ trong dự án thư viện lớp 2.0 này. (?)

Điều gì sẽ gây ra điều này xảy ra và làm cách nào để khắc phục sự cố? Tôi đã xem xét trên web, nhưng tôi chỉ thấy rằng mọi người đã đề xuất xóa các tham chiếu và thêm lại chúng; mà tôi đã làm, vô ích.

Tôi đang xem xét bắt đầu một dự án mới và sao chép tất cả các tệp nguồn của tôi từng người một, nhưng thực sự muốn tránh tất cả điều này nếu có thể.

Cảm ơn trước!

+4

Là một dự án sử dụng .Net 2.0 trong khi một dự án khác trong cùng một giải pháp sử dụng .Net 3.5? Và một dự án là tài liệu tham khảo khác? – Amy

+0

Tạo lại, ghi lại các thông báo lỗi bạn nhận được. –

+0

cảm ơn amy, tôi đã thêm phiên bản khác nhau của dự án. –

Trả lời

18

Sử dụng Trình khám phá giải pháp, nhấp chuột phải và chọn Hủy dự án và sau đó chọn Chỉnh sửa (tên tệp csproj của bạn) để có thể chỉnh sửa tệp .csproj trực tiếp trong VS.

Dưới một trong số các nút <ItemGroup>, bạn sẽ tìm thấy các mã phụ được gắn thẻ Reference. Đảm bảo rằng giá trị nút HintPath trỏ đến một đường dẫn hợp lệ. Ngoài ra, hãy kiểm tra kỹ các nút SpecificVersionPrivate để biết các giá trị hợp lệ.

Hy vọng đánh giá những giá trị này sẽ giúp bạn giải quyết vấn đề của mình.

+1

Cảm ơn lời khuyên của bạn. Tôi đã làm những gì bạn nói và mọi thứ có vẻ chính xác trong . Tôi chỉ đơn giản là thay đổi tất cả các tham chiếu tương đối của tôi (ví dụ: '.. \ .. \ .. \') thành các tham chiếu tuyệt đối (ví dụ: 'c: \') và các dấu chấm than kỳ diệu biến mất. :) Cảm ơn một lần nữa! – Luc

43

Chỉ để thêm vào điều này. Gần đây tôi đã có một vấn đề mà tôi đã thêm tài liệu tham khảo đã có TargetFramework thiết lập để .NET 4.0 cho một dự án Visual Studio 2008. Tất cả những gì bạn nhận được là dấu chấm than màu vàng và giải thích.

Khi tôi nhận ra mình đã chọn các tệp nhị phân phát hành sai, nó có vẻ hiển nhiên!

+0

Cảm ơn, thực sự hoạt động. – testCoder

+0

Ha, đó chính xác là vấn đề tôi gặp phải - Cảm ơn. – pfeds

+0

Ditto ở đây ... cảm ơn. –

0

Nếu tệp .dll của bạn có trong điều khiển nguồn thì tất cả những gì bạn cần làm là kích chuột phải vào thư mục Dependencies và packages từ giải pháp (dưới nguồn Control Explorer) và nhận phiên bản mới nhất của nó.

Bạn sẽ tìm thấy tệp .dll trên hệ thống của mình.

1

Tôi đã gặp vấn đề tương tự với dấu chấm than màu vàng trên bounch tệp mã nguồn của giải pháp được TFS kiểm tra/duy trì. Không có sự đều đặn vì các tệp thực sự có dấu chấm than màu vàng và không có dấu chấm than nào. Bằng cách nghiên cứu nguyên nhân của vấn đề này, tôi có thể thấy rằng những tệp có dấu chấm than màu vàng đó thực sự không được lấy từ TFS xuống đĩa cứng của tôi. Tôi đã kiểm tra tệp HintPath, v.v. trong các tệp .csproj và mọi thứ đều ổn ở đó và cũng không có mẹo nào khác từ chuỗi này có thể giúp tôi giải quyết vấn đề.

GÌ CUỐI CÙNG GIÚP TÔI đã làm như sau: Trong trình khám phá giải pháp nhấp chuột phải vào Project -> Get Specific Version ... -> ('Loại phiên bản: Phiên bản mới nhất đã chọn') -> + bật hộp kiểm ' Ghi đè tất cả các tệp ngay cả khi phiên bản cục bộ khớp với phiên bản được chỉ định '-> nhấp vào nút' Nhận '

Sau khi tôi đã làm tất cả các tệp mã nguồn có thể được truy xuất thành công từ TFS và dấu chấm than màu vàng biến mất! Tôi hy vọng điều này sẽ giúp ai đó có cùng một vấn đề!

0

Tôi cũng gặp phải các lỗi này. Tôi đang sử dụng thư viện Nuget trong dự án của mình. Sau khi cập nhật gói Microsoft.Bcl, tất cả các lỗi tham chiếu đã được giải quyết.

0

Trong trường hợp của tôi, giải pháp nêu trên không có tác dụng. Tôi không chắc chắn, làm thế nào nền tảng của tôi đã được thay đổi để AnyCPU. Tôi đã sử dụng sqlite trên dự án. Sau đó, tôi chỉ cần thay đổi nền tảng để x86/cánh tay cho giả lập/thiết bị. Nó hoạt động trở lại như một sự quyến rũ. Hy vọng, nó giúp ai đó.

5

vấn đề của tôi là sự khác biệt trong các phiên bản .NET framework mục tiêu được đặt trên các dự án. đầu tiên được đặt thành .NET 4.0 và thứ hai là .NET 4.5 thay đổi nó đã giải quyết được sự cố của tôi

2

Thay đổi khung DotNet đích là giống nhau giữa hai dự án và tất cả sẽ hoạt động tốt. (Đặc biệt nếu bạn "nâng cấp")

+0

như @reza_baiat đã nói (tôi đã bỏ lỡ điều đó) – pashute

4

Tôi gặp vấn đề tương tự với một dự án được mở trong Visual Studio 2015 gần đây.

Lỗi xuất hiện khi tôi đã chuyển một vài lần so với vị trí vật lý của kho gói giải pháp mặc định và cố tình thay đổi giá trị của repositoryPath trong NuGet.Config

Trong trường hợp của tôi, tôi cần phải loại bỏ một phần tử có đường dẫn được trỏ đến bởi thuộc tính condition không hợp lệ bên trong phần Target của tệp csproj.

<Error Condition="!Exists('..\..\..\..\..\Packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" 
     Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\..\Packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets'))" /> 

Ngoài ra, lỗi này được sao chép khi thư mục Gói thông thường bị xóa hoặc di chuyển ở nơi khác. Người ta nên cập nhật giá trị này cùng với ItemGroup.

+0

Nó làm việc cho tôi – rorfun

11

Kiểm tra thời tiết khuôn khổ dự án NET là bằng hoặc lớn hơn tài liệu tham khảo .Net framework

+1

Có cùng một vấn đề ở đây; Dự án .NET 4.5 tham chiếu dự án .NET 4.5.1 sẽ không biên dịch cho đến khi tôi thực hiện điều này. Cảm ơn! – rdev5

+0

Một triệu chứng cho điều này là các loại được IntelliSence nhận dạng và bạn có thể viết mã trong Visual Studio bằng cách sử dụng các loại trong thư viện tham chiếu, tuy nhiên mã sẽ không biên dịch và bạn thấy dấu chấm than màu vàng cho hội đồng tham chiếu đó. Thật không may là không có mẹo công cụ để cho chúng tôi biết những gì là sai. –

0

Vấn đề: Đây là những gì đã xảy ra với tôi, tôi đã lập bản đồ kho TFS của tôi vào một thư mục trong C: \ Users \ myUserNameFolder \ "myUserNameFolder" có các quyền đặc biệt cho thực tế là thư mục System của nó, do đó các dll được tham chiếu trong giải pháp nhận được tam giác màu vàng và bất cứ khi nào tôi cố gắng tham khảo lại tất cả các dll, chúng vẫn nhận được cùng một dấu tam giác màu vàng. Giải pháp: Tôi đã sao lưu kho lưu trữ TFS của mình vào thư mục bình thường trên C: \ và điều đó đã thực hiện thủ thuật. Hy vọng điều này sẽ giúp người khác ..

P.S. Điều này xảy ra trong VS 2015.

1

Tôi đã gặp vấn đề tương tự, sau khi sao chép thư mục dự án từ một dự án khác làm điểm bắt đầu cho giải pháp mới.

Tất cả dự án đều tham chiếu rằng dấu chấm than màu vàng này, ngay cả các tham chiếu đến các hội đồng khung.

gì cuối cùng giúp là đảm bảo, rằng thư mục ".nuget" (Bao gồm Nuget.Config, NuGet.exe, NuGet.targets) là trong thư mục giải pháp của tôi. Sau đó, tôi đã làm "Khôi phục Gói Nuget" trong menu Ngữ cảnh của giải pháp. Bây giờ tất cả các dấu chấm than đã biến mất!

+0

cảm ơn bạn, đây cũng là vấn đề của tôi. – TheNoob

0

Trong trường hợp của tôi, hóa ra là dll có phiên bản khác so với gói nuget. Mặc dù 1.1.14 đã được tải xuống và thư mục được gọi là 1.1.14, khi kiểm tra các thuộc tính dll (trong tab chi tiết), tôi nhận thấy rằng đó là phiên bản 1.1.13.

Do đó, csproj của tôi phải tham chiếu thư mục 1.1.14, nhưng tệp 1.1.13 dll. Tôi đã thay đổi tệp csproj để cho biết điều này.

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