Cara menemukan alasan Build gagal tanpa kesalahan atau peringatan


144

Saya memiliki Aplikasi Web yang berisi referensi ke layanan WCF.

Saat membangun menggunakan Visual Studio 2010, Build gagal tanpa kesalahan atau peringatan. Namun membangun .csprojpenggunaannya MsBuildberhasil.

Tidak tahu apa yang harus saya coba di Visual Studio, untuk menyelesaikan / mendiagnosis masalah. Bisakah Anda membantu?

EDIT:

Saya mengetahui bahwa bangunannya telah gagal,

  1. Dari teks yang ditampilkan di bilah status.
    masukkan deskripsi gambar di sini

  2. Dari jendela keluaran:

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

5
bagaimana Anda tahu bahwa bangunan Anda gagal?
Sam saya berkata Reinstate Monica

5
Apakah ada sesuatu di tab output?
Malice

15
Cobalah untuk meningkatkan verbositas dari Output Window di Visual Studio. Ini dapat membantu menentukan masalahnya. Cara meningkatkan tingkat verbositas: blogs.msdn.com/b/saraford/archive/2008/10/07/…
Maxim Kornilov

6
Sudahkah Anda mencoba me-restart VS2010 atau bahkan me-reboot PC Anda?
comecme

2
@NahuelI. Saya mendapat masalah serupa sekali lagi di proyek lain, ketika saya mencari stackoverflow saya mendapatkan pertanyaan saya sendiri kembali :-)
Abhijeet

Jawaban:


119

Saya hanya mengalami situasi yang sama. Dalam kasus saya, tindakan kustom (dari paket MSBuildVersioning tersedia di Nuget.org - http://www.nuget.org/packages/MSBuildVersioning/ ) yang muncul di target file SebelumBuild file csproj gagal tanpa memicu pesan kesalahan apa pun di tempat normal.

Saya dapat menentukan ini dengan menetapkan "MSBuild project build output verbosity" (di tab Alat Visual Studio terbaru [Path: Tools> Options> Build and Run ]) ke " Diagnostic " seperti yang ditunjukkan di bawah ini. Ini kemudian menunjukkan bahwa tindakan khusus (dalam kasus saya HgVersionFile) adalah yang gagal.

Tangkapan layar dari Visual Studio menunjukkan pengaturan yang dimodifikasi.


2
Sangat baik menemukan Richard - Informasi yang sangat berguna ketika Anda mengatur kedua tingkat verbositas ke diagnostik
Dai Bok

3
Bagi siapa pun yang tidak mengerti seperti saya: untuk menggunakan metode ini, Anda mungkin harus mencari konten dari jendela output. Kesalahan build saya disembunyikan oleh #pragma warning disablepernyataan dan hanya terlihat ketika saya mencari 'error' di jendela output.
sirdank

Setelah mengatur verbosity saya ke diagnostik, saya menemukan saya mendapatkan System.OutOfMemoryException. Saya menggunakan 98% dari memori komputer saya yang tersedia. Ini jawaban yang bagus!
TxRegex

1
Ini memecahkan masalah pada VisualStudio 2017 juga. Terima kasih banyak.
H. Aydin

1
Bagi saya, saya menggunakan Queue New Build untuk membangun TFS dan dialog Queue Build memiliki verbosity pada tab kedua saya bisa muncul dan kemudian melihat masalah di log build.
AaronLS

135

Build + Intellisense menelan pesan kesalahan. Memilih Bangun Saja menampilkannya.

Tangkapan layar


Baru saja masuk ke situasi di mana tidak ada yang menunjukkan kesalahan ini :(
Imad

1
Wow, ini bekerja untuk saya bagaimana sih ini di versi baru 2019 VS. Terima kasih sobat!
Carter

1
@AbuAbdullah Bekerja untuk saya. Pekerjaan bagus dalam membantu orang lain.
nam

terima kasih, selamatkan hari saya
Bikram Limbu

59
  • Jika solusi berisi lebih dari satu proyek, coba bangun satu per satu.
  • Coba mulai ulang Visual Studio.
  • Coba mulai ulang Komputer.
  • Coba " Bangun kembali semua "
  • Coba " Bersih Solusi " kemudian menghapus Anda " vspscc " file dan " vssscc " file dan kemudian restart Visual Studio dan kemudian " Rebuild All ".

105
Dan ketika itu tidak membantu haruskah saya mencari pekerjaan baru?
Alex Zhukovskiy

2
Memulai kembali VS2013 membantu saya. Saya sedang mengerjakan VM dengan sumber daya terbatas tapi saya tidak yakin apakah itu ada hubungannya dengan itu.
Jmaurier

2
Anda tidak dapat membersihkan solusinya jika Anda mengalami masalah ini.
H. Aydin

1
Yang membantu saya adalah menutup semua instance VS (tidak cukup untuk menutup yang rusak), lalu hapus .vsfolder dan mulai VS lagi.
EliSherer

22

VS (2013 Pro, Win 8.1) memulai kembali melakukannya untuk saya.


VS 2015 Community Win 7 dengan Proyek MVC tunggal. Resolusi yang sama.
maplemale

2
VS 2017 Komunitas Win 10. Saya rasa saya harus mencoba mematikannya dan hidup lagi sebelum mencari solusi!
DreamTeK


9

Saya ingin memperluas jawaban Sasse .

Untuk memperbaiki masalah dengan Visual Studio 2015 Pembaruan 2 Saya harus membangun setiap proyek satu per satu dan melihat jendela output setelah setiap membangun.

Satu proyek memberi saya

"Tipe atau nama namespace 'SomeNamespace' tidak ada di namespace 'BeforeSomeNamespace' (apakah Anda kehilangan referensi perakitan?)".

Tidak ada kesalahan di jendela Daftar Kesalahan tetapi majelis memiliki tanda peringatan kuning di bawah "Referensi".

Saya kemudian melihat bahwa proyek referensi menargetkan 4.5.1 dan proyek referensi 4.6.1. Mengubah 4.6.1 ke 4.5.1 memungkinkan keseluruhan bangunan berhasil.


1
Ya, membangun sebuah proyek pada satu waktu mungkin tidak perlu, tetapi satu hal yang pasti: perhatikan dengan teliti jendela keluaran (lebih baik lagi salin / tempel ke notepad dan gunakan Ctrl + F find) untuk kata "hilang". Itu tidak muncul di daftar kesalahan, tapi itu pasti memecahkan solusi Anda. -.-
Dovydas Navickas

5

Tidak ada yang berfungsi untuk saya jadi saya menghapus file .suo, restart VS, membersihkan yang diproyeksikan, dan kemudian build akan bekerja.


5

Tampaknya ada beberapa jawaban untuk pertanyaan ini, jadi saya akan menambahkan jawaban saya dari pengalaman pribadi dengan harapan ini akan menghemat waktu / stres seseorang.

Pastikan semua proyek dalam solusi Anda menargetkan versi .NET yang sama.

Mirip dengan OP, ada 0 kesalahan tetapi build tetap gagal. Namun, ada satu entri peringatan (terkubur di antara beberapa ratus peringatan XML yang tidak berguna ...) yang mengatakan bahwa satu proyek menargetkan versi .NET yang berbeda dari proyek yang merujuknya. Keseluruhan masalah adalah bahwa satu proyek dalam solusi saya menargetkan .NET 4.5.2, ketika sisanya menargetkan 4.5.1. Ini harus bekerja bahkan dengan perbedaan ini (karenanya mengapa itu hanya peringatan) tapi sayangnya, itu merusak build.

Bagian yang aneh adalah bahwa itu dibangun / berjalan dengan baik untuk sementara waktu, tetapi tiba-tiba bangunan itu mulai gagal satu kali menyebabkan masalah ini. Tidak yakin apa yang saya lakukan untuk mulai mengeluh tentang perbedaan versi .NET target, tapi saya merasa bahwa hanya ada beberapa misteri di Visual Studio yang tidak akan pernah terpecahkan.


1
Ternyata saya telah menambahkan proyek baru dan memiliki versi .Net framework framework yang berbeda - Saya memperbaikinya dan, meskipun build masih gagal, saya kemudian dapat melihat kesalahan yang merusak build. Terima kasih.
Fijjit


3

Pertama "Bersihkan Solusi", kemudian Bangun kembali soln.

Jika tidak berhasil tutup Solusi dan mulai ulang solusinya.

Cobalah hal-hal ini, harapan pasti berhasil.


3

Pada kemungkinan lain adalah bahwa Visual Studio perlu dijalankan sebagai Administrator, ini mungkin terkait dengan penggunaan ke server IIS lokal atau kebutuhan penyebaran lainnya.


3

ini bisa terjadi ketika salah satu proyek yang direferensikan adalah versi yang lebih tinggi dari .NET framework daripada proyek Anda saat ini.


3

Saya memiliki masalah yang sama dan saya melacak masalah ini hingga ke opsi Daftar Kesalahan "Build + Intellisense".

Jika opsi ini dipilih maka tidak ada kesalahan yang ditampilkan dalam daftar. Alihkan ke " Build Only " dan kesalahan muncul seperti yang diharapkan.

Itu terlihat seperti bug di Visual Studio. Restart studio visual menyelesaikan masalah ini .


2

Saya memiliki masalah yang sama setelah menambahkan proyek baru (disebut "TestCleaner") ke solusi saya: Build gagal, tidak ada kesalahan.

Saya meningkatkan verbositas keluaran (lihat instruksi Richard J Foster) dan mencari output untuk "gagal". Saya segera menemukan proyek mana yang gagal, dan mengapa: proyek "TestRunner" gagal dengan " error CS0246: Tipe atau nama namespace 'TestCleaner' tidak dapat ditemukan" (meskipun tidak ada masalah yang disorot dalam kode).

Memeriksa referensi TestRunner, tentu saja referensi ke TestCleaner ditandai sebagai belum terselesaikan, dan jalurnya hilang dari properti referensi. Menghapus dan menambahkan kembali tidak memperbaikinya. Sekali lagi, tidak ada penjelasan mengapa.

referensi yang belum terselesaikan

Saya akhirnya menemukan penyebabnya: "TestCleaner" menggunakan kerangka kerja target yang berbeda dengan proyek lainnya. Itu .Net 4.5.2; yang lainnya 4,5.


2

Hanya demi penyelesaian dan mungkin membantu seseorang menemukan kesalahan yang sama lagi di masa depan, saya menggunakan antarmuka metro Mahapps dan mengubah XAML dari satu jendela, tetapi lupa mengubah kelas parsial dalam kode di belakang. Jika demikian, build gagal tanpa kesalahan atau peringatan, dan saya dapat mengetahuinya dengan meningkatkan verbositas output dari pengaturan:

Panel kesalahan

panel output


5
juga pilih 'bangun saja' bukan 'bangun + intellisense' di filter kesalahan.
niico

2

Saya memiliki masalah yang sama. Jendela daftar kesalahan memiliki 2 dropdown "Tampilkan item yang terkandung oleh" dan "Tampilkan masalah yang dihasilkan". Nama-nama ini terlihat setelah melayang di atas dropdown. Dropdown "Tampilkan masalah yang dihasilkan" disetel ke "Build + IntelliSense" dan setelah diubah menjadi "Build Only" kesalahan muncul di daftar.


2

Bagi saya, itu Target Framework itulah masalahnya.

Proyek saya Target Frameworkadalah 4.5.2dan proyek yang dirujuk Target Frameworkadalah4.6.1 .

Setelah saya memperbarui proyek saya Target Frameworkke 4.6.1, masalah diperbaiki.


1

Saya menghadapi masalah yang sama! Hapus folder bin dan mulai kembali VS. Itu saja. diuji dalam VS 2013.


Ketika saya mencoba untuk menyelesaikan ini dengan menghapus bin dan folder obj itu memperbaikinya. Saya juga memerlukan hak admin untuk menghapus folder obj sehingga sesuatu yang sangat aneh terjadi.
DAG

1

Apa yang menyelesaikannya bagi saya adalah menghapus .vs folder dari akar solusi dan memulai kembali Visual Studio.

Mungkin juga penting untuk mengatakan bahwa meskipun kesalahan tidak ditampilkan di panel Daftar Kesalahan, mereka masih ada di Output dari Build.


1

Cobalah membangun proyek Anda dari baris perintah Powershell:

dotnet build

Kemudian Anda dapat melihat kesalahan dalam output baris perintah bahkan jika Visual Studio sedang bermain petak umpet dengan pesan galat build.


0

Ini terjadi pada saya setelah menambahkan halaman baru ke proyek asp.net.

Apa yang saya lakukan adalah mengecualikan halaman, membuatnya berhasil dibangun kembali.

Kemudian saya menambahkan kembali halaman dengan semua kode berkomentar. Keberhasilan.

Lalu saya uncommented sedikit demi sedikit kode dan kemudian semuanya berhasil.


0

Saya memiliki masalah yang sama setelah menghapus beberapa formulir. Kesalahan muncul begitu saya masuk ke kode dan melakukan "Tampilkan Definisi" untuk salah satu kontrol yang saya hapus.

Saya juga menargetkan kerangka kerja yang lebih tinggi pada salah satu proyek saya, sehingga mungkin menjadi masalah juga.


0

Saya sudah mencoba semua tetapi tidak ada yang berhasil dalam kasus saya maka saya telah mengubah pengaturan yang disebutkan ini yang menyelesaikan masalah dengan cukup baik bagi saya. Coba Jika bisa membantu pemirsa yang terakhir. Pengaturan ini dapat bervariasi dalam situasi Anda, tetapi pastikan membangun semua DLL termasuk dengan pengaturan konfigurasi yang sama yang Anda simpan pada awalnya (disebutkan dalam gambar.).Pengaturan konfigurasi

Gambar di sini.

Bersulang!


0

Jika paket nuget 'Microsoft.Net.Compiler' diinstal, pastikan itu sesuai dengan versi Visual Studio Anda (versi Build Tools).

Versi 1.x berarti C # 6.0 (Visual Studio 2015 dan pembaruan). Misalnya, 1.3.2

Jadi jangan upgrade ke versi di atas 1.x jika Anda menggunakan VS2015

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


0

Saya punya proyek yang sangat tua di mesin yang lebih tua. Proyek dibangun dengan benar ketika saya mematikan mesin. Hari ini, saya mendapatkan error build tetapi tidak ada pesan error. Setelah mencoba beberapa saran dari atas, tidak berhasil.

Di Visual Studio 2015, saya menyalakan MSBuild Detail di bawah ALAT> Pilihan> Proyek dan Solusi> Bangun dan Jalankan

Ini memberi saya beberapa detail tentang build tetapi tidak ada kesalahan. Setelah itu saya mencoba memeriksa Ekstensi dan pembaruan (Alat> Ekstensi dan Pembaruan) dan menemukan beberapa di antaranya yang perlu diperbarui.

Paket Nuget adalah biang keladinya, setelah memperbarui Nuget - build berhasil.

masukkan deskripsi gambar di sini



0

Karena semuanya tidak berfungsi, ditemukan bahwa kesalahan tidak muncul ketika membuka proyek sebagai solusi (.sln), sedangkan kesalahan menunjukkan ketika membuka proyek sebagai proyek.


0

Saya memiliki masalah yang sama, saya mengubah Tools -> Options -> Projects and Solutions / Build and Run -> Proyek MSBuild membangun log file verbosity [ Diagnostic ]. Opsi ini menunjukkan kesalahan dalam log, karena beberapa alasan VS saya tidak menampilkan Kesalahan di tab Kesalahan!

masukkan deskripsi gambar di sini

Lakukan pengaturan di atas dan salin keluaran di notepad / texteditor dan cari kesalahan. Ini akan menampilkan semua kesalahan.


0

Mulai ulang Visual Studio bekerja untuk saya. Coba juga restart Visual Studio secara normal (Tidak Jalankan sebagai Administrator). Coba Restart Sistem dan ulangi langkah di atas.


0

Cara berbeda untuk mereproduksi gejala ini:

Saya menambahkan proyek baru ke solusi yang ada dan output build melaporkan kesalahan seperti "tipe atau nama namespace X tidak dapat ditemukan ..." tetapi tidak ada kesalahan yang disajikan dalam daftar kesalahan.

Kelas-kelas yang saya maksudkan ada di proyek lain (yang direferensikan) dalam solusi yang sama.

Ternyata saya secara tidak sengaja telah memilih versi .net sebelumnya di proyek baru. Setelah saya mengubah ke versi yang sama dengan proyek lainnya, semuanya dibangun tanpa kesalahan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.