Làm thế nào để tìm lý do thất bại Xây dựng mà không có bất kỳ lỗi hoặc cảnh báo


144

Tôi có một Ứng dụng web chứa tham chiếu đến các dịch vụ WCF.

Trong khi xây dựng bằng Visual Studio 2010, Build không thành công mà không có bất kỳ lỗi hay cảnh báo nào. Tuy nhiên, xây dựng việc .csprojsử dụng MsBuildlà thành công.

Không thể tìm ra những gì tôi nên thử trong Visual Studio, để giải quyết / chẩn đoán vấn đề. Bạn có thể vui lòng giúp đỡ?

BIÊN TẬP:

Tôi phát hiện ra rằng việc xây dựng đã thất bại,

  1. Từ văn bản hiển thị trong Thanh trạng thái.
    nhập mô tả hình ảnh ở đây

  2. Từ cửa sổ đầu ra:

    ========== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped ==========

5
Làm thế nào để bạn biết rằng bản dựng của bạn đang thất bại?
Sam tôi đang nói Phục hồi Monica

5
Có bất cứ điều gì trong tab đầu ra?
Malice

15
Cố gắng tăng tính dài dòng của Cửa sổ đầu ra trong Visual Studio. Nó có thể giúp xác định vấn đề. Cách tăng mức độ chi tiết: blog.msdn.com/b/saraford/archive/2008/10/07/ith
Maxim

6
Bạn đã thử khởi động lại VS2010 hoặc thậm chí khởi động lại PC của bạn chưa?
comecme

2
@NahuelI. Tôi gặp vấn đề tương tự một lần nữa trong một dự án khác, khi tôi tìm kiếm stackoverflow tôi đã nhận được câu hỏi của riêng mình :-)
Abhijeet

Câu trả lời:


119

Tôi vừa gặp phải một tình huống tương tự. Trong trường hợp của tôi, một hành động tùy chỉnh (từ gói MSBuildVersioning có sẵn trên Nuget.org - http://www.nuget.org/packages/MSBuildVersioning/ ) xuất hiện trong mục tiêu BeforeBuild của tệp csproj đã thất bại mà không kích hoạt bất kỳ thông báo lỗi nào trong nơi bình thường.

Tôi đã có thể xác định điều này bằng cách đặt "mức độ chi tiết đầu ra của dự án xây dựng dự án MSBuild" (trong tab Công cụ mới nhất của Visual Studio [Đường dẫn: Công cụ> Tùy chọn> Xây dựng và Chạy ]) thành " Chẩn đoán " như hiển thị bên dưới. Điều này sau đó cho thấy hành động tùy chỉnh (trong trường hợp của tôi là HgVersionFile) là những gì đã thất bại.

Chụp màn hình từ Visual Studio hiển thị cài đặt đã sửa đổi.


2
Tìm kiếm tuyệt vời Richard - Thông tin thực sự hữu ích khi bạn đặt cả hai mức độ chi tiết thành chẩn đoán
Dai Bok

3
Đối với bất cứ ai không biết gì như tôi: để sử dụng phương pháp này, bạn có thể phải tìm kiếm nội dung của cửa sổ đầu ra. Lỗi xây dựng của tôi đã bị ẩn bởi các #pragma warning disablecâu lệnh và chỉ hiển thị khi tôi tìm kiếm "lỗi" trong cửa sổ đầu ra.
sirdank

Sau khi thiết lập mức độ dài của mình để chẩn đoán, tôi phát hiện ra mình đang nhận được System.OutOfMemoryException. Tôi đã sử dụng 98% bộ nhớ khả dụng của máy tính. Đây là một câu trả lời tuyệt vời!
TxRegex

1
Điều này cũng giải quyết vấn đề trên VisualStudio 2017. Cảm ơn rất nhiều.
H. Aydin

1
Đối với tôi, tôi đang sử dụng Queue New Build để xây dựng trên TFS và hộp thoại Queue Build có độ dài trên tab thứ hai tôi có thể bật lên và sau đó thấy vấn đề trong nhật ký xây dựng.
AaronLS

135

Build + Intellisense nuốt các thông báo lỗi. Chọn Build Only hiển thị chúng.

Ảnh chụp màn hình


Chỉ gặp phải trường hợp không có lỗi nào trong số này hiển thị :(
Imad

1
Wow, điều này làm việc cho tôi làm thế nào trong cái quái này là một điều trong phiên bản mới của VS 2019. Cảm ơn người đàn ông!
Carter

1
@AbuAbdullah Làm việc cho tôi. Làm tốt công việc giúp đỡ người khác
nam

cảm ơn, đã cứu ngày của tôi
Bikram Limbu

59
  • Nếu giải pháp chứa nhiều dự án, hãy thử xây dựng từng dự án một.
  • Hãy thử khởi động lại Visual Studio.
  • Hãy thử khởi động lại máy tính.
  • Hãy thử " Xây dựng lại tất cả "
  • Hãy thử " Giải pháp sạch ", sau đó loại bỏ "của bạn vspscc " tập tin và " vssscc " tập tin và sau đó khởi động lại Visual Studio và sau đó " Rebuild Tất cả ".

105
Và khi nó không giúp tôi có nên tìm một công việc mới không?
Alex Zhukovskiy

2
Chỉ cần khởi động lại VS2013 đã giúp tôi. Tôi đã làm việc trên một máy ảo với nguồn lực hạn chế nhưng tôi không chắc điều đó có liên quan gì đến nó không.
Jmaurier

2
Bạn không thể làm sạch giải pháp nếu bạn gặp vấn đề này.
H. Aydin

1
Điều giúp tôi là đóng tất cả các phiên bản của VS (không đủ để đóng lỗi bị lỗi), sau đó xóa .vsthư mục và bắt đầu lại VS.
EliSherer

22

Khởi động lại VS (2013 Pro, Win 8.1) đã làm điều đó cho tôi.


Cộng đồng VS 2015 Win 7 với một Dự án MVC duy nhất. Độ phân giải tương tự.
mapl Gay 10/2/2017

2
Cộng đồng VS 2017 Win 10. Tôi đoán tôi nên thử tắt và bật lại trước khi tìm kiếm giải pháp!
DreamTeK


9

Tôi muốn mở rộng câu trả lời của Sasse .

Để khắc phục sự cố với Visual Studio 2015 Update 2, tôi đã phải xây dựng từng dự án một và xem cửa sổ đầu ra sau mỗi lần xây dựng.

Một dự án đã cho tôi

"Tên loại hoặc không gian tên 'Một số không gian tên' không tồn tại trong không gian tên 'BeforeSomeNamespace' (bạn có thiếu tham chiếu lắp ráp không?)".

Không có lỗi trong cửa sổ Danh sách Lỗi nhưng hội đồng có dấu hiệu cảnh báo màu vàng trong phần "Tài liệu tham khảo".

Sau đó tôi thấy rằng dự án tham chiếu nhắm mục tiêu 4.5.1 và dự án được tham chiếu 4.6.1. Thay đổi 4.6.1 thành 4.5.1 cho phép xây dựng tổng thể thành công.


1
Chà, xây dựng một dự án tại một thời điểm có thể không cần thiết, nhưng có một điều chắc chắn: hãy cẩn thận nhìn vào cửa sổ đầu ra (tốt hơn là sao chép / dán nó vào notepad và sử dụng Ctrl + F find) cho một từ "mất tích". Nó không hiển thị trong danh sách lỗi, nhưng chắc chắn là địa ngục phá vỡ giải pháp của bạn. -.-
Dovydas Navickas

5

Không có gì làm việc cho tôi vì vậy tôi đã xóa tệp .suo, khởi động lại VS, làm sạch dự kiến ​​và sau đó quá trình xây dựng sẽ hoạt động.


5

Có vẻ như có nhiều câu trả lời cho câu hỏi này, vì vậy tôi sẽ thêm câu trả lời của tôi từ kinh nghiệm cá nhân với hy vọng nó sẽ tiết kiệm thời gian / căng thẳng cho ai đó.

Đảm bảo rằng tất cả các dự án trong giải pháp của bạn đang nhắm mục tiêu vào cùng một phiên bản .NET.

Tương tự như OP, có 0 lỗi nhưng quá trình xây dựng không thành công. Tuy nhiên, có một mục cảnh báo (bị chôn vùi giữa hàng trăm cảnh báo XML vô dụng ...) nói rằng một dự án đang nhắm mục tiêu một phiên bản .NET khác với dự án đang tham chiếu đến nó. Toàn bộ vấn đề là một dự án trong giải pháp của tôi đã nhắm mục tiêu .NET 4.5.2, khi đó phần còn lại đang nhắm mục tiêu 4.5.1. Nó nên hoạt động ngay cả với sự khác biệt này (do đó tại sao nó chỉ là một cảnh báo) nhưng thật không may, nó đã phá vỡ bản dựng.

Phần kỳ lạ là nó được xây dựng / chạy tốt trong một thời gian, nhưng đột nhiên bản dựng bắt đầu thất bại một lần gây ra vấn đề này. Không chắc chắn những gì tôi đã làm cho nó để bắt đầu phàn nàn về các phiên bản mục tiêu .NET khác nhau, nhưng tôi cảm thấy rằng chỉ có một số bí ẩn trong Visual Studio sẽ không bao giờ được giải quyết.


1
Hóa ra tôi đã thêm một dự án mới và nó có phiên bản khung mục tiêu .Net khác - Tôi đã sửa nó và mặc dù bản dựng vẫn thất bại, sau đó tôi có thể thấy lỗi đã phá vỡ bản dựng. Cảm ơn.
Fijjit

4

Chuyển đến cửa sổ đầu ra, tìm kiếm 'lỗi' trong cửa sổ đầu ra, TADA


3

Đầu tiên là "Làm sạch giải pháp", sau đó Rebuild soln.

Nếu không hoạt động, đóng Giải pháp và khởi động lại giải pháp.

Hãy thử những điều này, hy vọng chắc chắn hoạt động.


3

Về khả năng khác là Visual Studio cần phải chạy với tư cách Quản trị viên, điều này có thể liên quan đến việc triển khai đến máy chủ IIS cục bộ hoặc nhu cầu triển khai khác.


3

điều này có thể xảy ra khi một trong các dự án được tham chiếu là phiên bản .NET framework cao hơn dự án hiện tại của bạn.


3

Tôi gặp vấn đề tương tự và tôi đã tìm ra vấn đề này với các tùy chọn Danh sách Lỗi "Build + Intellisense".

Nếu tùy chọn này được chọn thì không có lỗi nào được hiển thị trong danh sách. Chuyển sang " Chỉ xây dựng " và các lỗi xuất hiện như mong đợi.

Nó trông giống như một lỗi trong Visual Studio. Khởi động lại phòng thu hình đã giải quyết vấn đề này .


2

Tôi đã gặp một vấn đề tương tự sau khi thêm một dự án mới (được gọi là "TestCleaner") vào giải pháp của tôi: Xây dựng thất bại, không có lỗi.

Tôi đã tăng mức độ chi tiết đầu ra (xem hướng dẫn của Richard J Fosterer) và tìm kiếm đầu ra cho "thất bại". Tôi nhanh chóng phát hiện ra dự án nào đang thất bại và tại sao: dự án "TestRunner" đã thất bại với " lỗi CS0246: Không thể tìm thấy tên loại hoặc không gian tên 'TestCleaner" (mặc dù không có vấn đề nào được làm nổi bật trong mã).

Kiểm tra các tham chiếu của TestRunner, chắc chắn rằng tham chiếu đến TestCleaner đã được đánh dấu là chưa được giải quyết và đường dẫn bị thiếu trong các thuộc tính tham chiếu. Xóa và thêm lại đã không sửa nó. Một lần nữa, không có lời giải thích tại sao.

tài liệu tham khảo chưa được giải quyết

Cuối cùng tôi đã phát hiện ra nguyên nhân: "TestCleaner" đang sử dụng một khung mục tiêu khác với các dự án khác. Đó là .Net 4.5.2; những người khác là 4,5.


2

Chỉ vì mục đích hoàn thành và có thể giúp ai đó gặp lại lỗi tương tự trong tương lai, tôi đã sử dụng giao diện metro Mahapps và thay đổi XAML của một cửa sổ, nhưng quên thay đổi lớp một phần trong mã phía sau. Trong trường hợp đó, bản dựng không thành công mà không có lỗi hoặc cảnh báo và tôi có thể tìm ra nó bằng cách tăng mức độ chi tiết của đầu ra từ cài đặt:

Cửa sổ lỗi

khung đầu ra


5
cũng chọn 'build only' chứ không phải 'build + intellisense' trong bộ lọc lỗi.
niico

2

Tôi đã từng gặp vấn đề tương tự. Cửa sổ danh sách lỗi có 2 danh sách thả xuống "Hiển thị các mục được chứa bởi" và "Hiển thị các sự cố được tạo". Những tên này có thể nhìn thấy sau khi di chuột qua danh sách thả xuống. Danh sách thả xuống "Hiển thị sự cố được tạo" được đặt thành "Build + IntelliSense" và sau khi thay đổi thành "Chỉ xây dựng", các lỗi xuất hiện trong danh sách.


2

Đối với tôi, Target Framework vấn đề là

Dự án của tôi Target Framework4.5.2và dự án Target Frameworkđược tham chiếu là4.6.1 .

Khi tôi cập nhật dự án của Target Frameworkmình 4.6.1, vấn đề đã được khắc phục.


1

Tôi phải đối mặt với cùng một vấn đề! Chỉ cần xóa thư mục bin và khởi động lại VS. Đó là tất cả. thử nghiệm trong VS 2013.


Khi tôi cố gắng giải quyết vấn đề này bằng cách xóa thư mục bin và obj, nó đã sửa nó. Ngoài ra tôi yêu cầu quyền quản trị để xóa thư mục obj vì vậy một cái gì đó rất lạ đã xảy ra.
DAG

1

Điều giải quyết nó cho tôi là xóa .vsthư mục từ thư mục gốc của giải pháp và khởi động lại Visual Studio.

Cũng có thể quan trọng để nói rằng mặc dù các lỗi không hiển thị trong ngăn Danh sách Lỗi, chúng vẫn có mặt trong Kết quả từ Bản dựng.


1

Hãy thử xây dựng dự án của bạn từ dòng lệnh Powershell:

dotnet build

Sau đó, bạn có thể thấy bất kỳ lỗi nào trong đầu ra dòng lệnh ngay cả khi Visual Studio đang chơi ẩn và tìm kiếm với các thông báo lỗi xây dựng.


0

Điều này đã xảy ra với tôi sau khi thêm một trang mới vào một dự án asp.net.

Những gì tôi đã làm là loại trừ trang, lấy nó để xây dựng lại thành công.

Sau đó tôi thêm lại trang với tất cả các mã nhận xét. Sự thành công.

Sau đó, tôi bỏ ghi chú mã từng chút một và rồi tất cả đều hoạt động.


0

Tôi đã có cùng một vấn đề sau khi xóa một vài hình thức. Các lỗi xuất hiện khi tôi nhập mã và thực hiện "Hiển thị định nghĩa" cho một trong các điều khiển mà tôi đã xóa.

Tôi cũng đã nhắm mục tiêu một khung cao hơn cho một trong các dự án của tôi, vì vậy đó cũng có thể là vấn đề.


0

Tôi đã thử tất cả nhưng không có gì hoạt động trong trường hợp của tôi sau đó tôi đã thay đổi các cài đặt được đề cập này đã giải quyết vấn đề khá tốt cho tôi. Hãy thử Nếu nó có thể giúp đỡ người xem sau này. Các cài đặt này có thể khác nhau trong tình huống của bạn, nhưng hãy đảm bảo xây dựng tất cả các DLL bao gồm các cài đặt cấu hình giống như bạn đã giữ ban đầu (được đề cập trong hình ảnh.).Thiết lập cấu hình

Hình ảnh ở đây.

Chúc mừng!


0

Nếu gói nuget 'Microsoft.Net.Compilers' được cài đặt, hãy đảm bảo rằng gói đó phù hợp với phiên bản Visual Studio của bạn (phiên bản Công cụ xây dựng).

Phiên bản 1.x có nghĩa là C # 6.0 (Visual Studio 2015 và các bản cập nhật). Chẳng hạn, 1.3.2

Vì vậy, đừng nâng cấp lên phiên bản trên 1.x nếu bạn sử dụng VS2015

https://stackoverflow.com/a/44397905/3862615


0

Tôi đã có dự án thực sự cũ trên máy cũ. Dự án đã được xây dựng chính xác khi tôi tắt máy. Hôm nay, tôi nhận được lỗi xây dựng nhưng không có thông báo lỗi. Sau khi thử một số gợi ý từ trên, không có may mắn.

Trong Visual Studio 2015, tôi đã bật MSBuild chi tiết trong CÔNG CỤ> Tùy chọn> Dự án và Giải pháp> Xây dựng và Chạy

Nó đã cho tôi một vài chi tiết về bản dựng nhưng không có lỗi. Sau đó, tôi đã cố kiểm tra Tiện ích mở rộng và cập nhật (Công cụ> Tiện ích mở rộng và Cập nhật) và tìm thấy một vài trong số chúng cần cập nhật.

Gói Nuget là thủ phạm, sau khi cập nhật Nuget - bản dựng thành công.

nhập mô tả hình ảnh ở đây



0

Vì mọi thứ đều không hoạt động, nhận thấy rằng các lỗi không hiển thị khi mở dự án dưới dạng giải pháp (.sln), trong khi lỗi hiển thị khi mở dự án dưới dạng dự án.


0

Tôi gặp vấn đề tương tự, tôi đã thay đổi Công cụ -> Tùy chọn -> Dự án và Giải pháp / Xây dựng và Chạy -> Dự án xây dựng tệp nhật ký tệp dự án MSBuild [ Chẩn đoán ]. Tùy chọn này hiển thị lỗi trong nhật ký, do một số lý do VS của tôi không hiển thị Lỗi trong tab Lỗi!

nhập mô tả hình ảnh ở đây

Thực hiện các cài đặt trên và sao chép đầu ra trong notepad / texteditor và tìm kiếm lỗi. Nó sẽ cho bạn thấy tất cả các lỗi.


0

Khởi động lại Visual Studio làm việc cho tôi. Đồng thời thử khởi động lại Visual Studio bình thường (Không chạy với tư cách Quản trị viên). Hãy thử Khởi động lại hệ thống và lặp lại bước trên.


0

Một cách khác để tái tạo triệu chứng này:

Tôi đã thêm một dự án mới vào một giải pháp hiện có và đầu ra bản dựng đã báo cáo các lỗi như "không thể tìm thấy tên loại hoặc không gian tên X ..." nhưng không có lỗi nào được đưa ra trong danh sách lỗi.

Các lớp tôi đã đề cập là trong các dự án khác (đã được tham chiếu) trong cùng một giải pháp.

Hóa ra tôi đã nhầm lẫn đã chọn một phiên bản trước đó của .net trong dự án mới. Khi tôi thay đổi phiên bản giống như các dự án khác, mọi thứ được xây dựng mà không có bất kỳ lỗi nào.

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.