Pembuatan proyek Visual Studio 2015 gagal tetapi tidak ada kesalahan

110

Proyek saya membangun semuanya gagal tetapi saya tidak menunjukkan kesalahan apa pun. Saya mencoba membersihkan dan membangun kembali, itu tidak berhasil.

Saya mengubah verbositas keluaran MSBuild menjadi 'Diagnostik' dengan harapan ini akan membantu saya mengidentifikasi masalah dan sekarang saya macet. Seperti inilah hasilnya:

1>Project 'ProjectMM.Data.Models' is not up to date. Input file 'C:\Projects\ProjectMM\ProjectMM.Data.Models\ProjectMM.Data.Models.csproj' is modified after output file 'C:\Projects\ProjectMM\ProjectMM.Data.Models\bin\Debug\ProjectMM.Data.Models.pdb'.
All packages are already installed and there is nothing to restore.
1>------ Build started: Project: ProjectMM.Data.Models, Configuration: Debug Any CPU ------
2>Project 'ProjectMM.Data' is not up to date. Input file 'C:\Projects\ProjectMM\ProjectMM.Data\ProjectMM.Data.csproj' is modified after output file 'C:\Projects\ProjectMM\ProjectMM.Data\bin\Debug\ProjectMM.Data.pdb'.
2>------ Build started: Project: ProjectMM.Data, Configuration: Debug Any CPU ------
3>Project 'ProjectMM' is not up to date. Input file 'c:\projects\projectmm\projectmm\app_start\bundleconfig.cs' is modified after output file 'C:\Projects\ProjectMM\ProjectMM\bin\ProjectMM.pdb'.
3>------ Build started: Project: ProjectMM, Configuration: Debug Any CPU ------
========== Build: 0 succeeded, 3 failed, 0 up-to-date, 0 skipped ==========
Rob Greenlee
sumber
1
Apakah jendela Daftar Kesalahan Anda muncul atau tidak?
Karthik
Buka menu Lihat -> Pilih Daftar Kesalahan dan periksa apakah Anda memiliki kesalahan. Idealnya Anda harus mendapatkannya di Daftar Kesalahan. Biarkan jendela Daftar Kesalahan Anda tetap terbuka dan coba buat proyek dan lihat apa yang terjadi ..
Karthik
4
Jadi, inilah yang baru saja terjadi: Saya memposting pertanyaan ini dan berasumsi saya tidak akan langsung mendapat tanggapan, saya menutup proyek tersebut. Anda meminta saya untuk membukanya kembali, membuka daftar kesalahan, dan membangun kembali. Ini bekerja dengan sempurna, tidak ada kesalahan, semua berhasil!
Rob Greenlee
@RobGreenlee: Lihat jawaban saya, saya yakin "tab Error" aktif ketika Anda membuka kembali solusinya!
jpo38

Jawaban:

101

Saya memiliki masalah yang sama dan menutup dan membuka kembali Visual Studio menyelesaikannya.

Saya juga telah mencoba Membersihkan solusi dan Pembersihan Gagal juga.

Mungkin ada skenario lain di mana ini tidak berhasil, tetapi dalam kasus saya memulai ulang telah menyelesaikan ini untuk saya.

Carson Evans
sumber
22
Jika tidak membantu untuk memulai ulang. Saya sering mengalami masalah ini ketika saya menambahkan proyek ke solusi saya, dengan kerangka kerja Target lain yang merujuk pada proyek kerangka kerja yang berbeda.
Bastiaan Linders
7
Dalam kasus saya, memulai ulang VS atau membersihkan solusi tidak membantu. Namun, menghapus .suo di bawah folder .vs memecahkan masalah
cellik
@cellik: Itu tidak berhasil dalam kasus saya. Apa yang berharga .. Saya menggunakan edisi Perusahaan.
KMC
4
Saya mengalami masalah yang sama setelah mengubah waktu komputer saya dari zona waktu CEST (GMT + 1) ke zona waktu AS (GMT-7), sepertinya tidak dapat menangani bahwa stempel waktu dari bangunan terakhir berada di masa depan. Setelah restart VS semuanya OK.
martinh_kentico
2
Menghapus file .suo melakukan trik untuk saya juga, memulai ulang dan membersihkan tidak.
Johann Marx
117

Mungkin saja Anda tidak melihat semua kesalahan versi.

Dengan mengubah daftar drop-down setelah ikon "Pesan" dari "Build + Intellisense" menjadi "Build Only", Anda akan dapat melihat kesalahan yang muncul selama pembuatan yang tidak terdeteksi oleh Intellisense. Lihat tangkapan layar di bawah ini:

Membangun

S. Mohamed Mahdi Ahmadian zadeh
sumber
3
Bung, Anda adalah penyelamat saya!
KMC
19
Mengapa kesalahan "Build Only" tidak ada di "Build + Intellisense"?
CodyF
Ini membantu dengan menampilkan kesalahan dalam daftar kesalahan, tetapi baris kode dengan kesalahan tidak memiliki garis bawah merah. Kurasa ini pasti masalah Intellisense.
Drew
Bekerja untuk saya. Milik saya telah dialihkan ke Build dan Intellisense, yang menyembunyikan kesalahan build. Build Only berfungsi dan menampilkan error build.
HerrimanCoder
1
Anda Pak menyelamatkan hari untuk saya .. kerja bagus .. Terima kasih banyak
MA9H
32

Saya telah melihat contoh reguler VS2015 yang melaporkan "build gagal" tetapi tidak menunjukkan kesalahan apa pun di jendela kesalahan. Berasal dari latar belakang baris perintah kuno, saya akhirnya melihat ke jendela keluaran. Jendela keluaran menunjukkan kesalahan pelaporan compiler tetapi kesalahan tersebut tidak ditangkap ke jendela kesalahan. Saya tidak pernah melihat masalah ini di bawah VS2013.

Penutupan VS yang biasa dan membukanya kembali belum menyelesaikan kondisi ini. (Di VS2013 ini adalah cara umum untuk menendang XAML Intellisense di belakang dan membuatnya berhenti memfiksasi "kesalahan" yang telah diperbaiki.)

Selama ini selalu terkait dengan kesalahan kompilasi dalam file CS halaman XAML. Saya tidak ingat melihatnya di file CS non-halaman.

Sampai seseorang keluar untuk memeriksa jendela keluaran, hal-hal seperti pelaporan intellisense di jendela kesalahan referensi yang tidak valid ke objek di XAML, tetapi tidak ada kesalahan kompiler yang ditampilkan di jendela kesalahan dapat SANGAT kebingungan karena "muncul" seperti kesalahan kesalahan XAML pelaporan Intellisense. Tapi sebenarnya tidak. Kesalahan XAML hanyalah gejala file CS yang gagal dikompilasi tetapi tidak memiliki pelaporan kesalahan di jendela kesalahan.

Keith
sumber
20
Bagi Anda yang masih berjuang dengan jendela kesalahan tak terlihat, tampaknya Anda bisa mendapatkan kesalahan kompilator untuk muncul di jendela dengan memilih Build Only di menu dropdown Filter ErrorList To di jendela Error List (dropdown tidak diberi label ... Anda dapat mengetahui yang mana dengan mengarahkan mouse ke atasnya dan mengamati tooltip).
Robert Harvey
2
@RobertHarvey ... ini adalah kuncinya ... tetapi MENGAPA di dunia ini Intellisense akan mengganti build?
felickz
@RobertHarvey persis seperti itu. Ternyata, seseorang di sini menyarankan bahwa saya mereferensikan proyek .net yang tidak kompatibel, tetapi saya tidak tahu apa masalahnya sampai saya mengalihkan output ke "Build Only" di panel Error. Segera setelah saya melakukannya, hal itu mengarahkan saya ke masalah tersebut. Terima kasih atas tipnya.
David Gunderson
Jawaban ini adalah petunjuk bagi saya. Telusuri "CS kesalahan" (tanpa tanda kutip) untuk kemungkinan pemblokiran pengecualian build.
granadaCoder
PS. Kesalahan saya adalah saya telah menggunakan nama variabel yang sama dalam metode saya. "string x = string.Empty;" sebagai contoh. Saya memiliki penangan pengecualian yang juga memiliki deklarasi "string x" di dalamnya.
granadaCoder
11

Menghapus .vsfolder tersembunyi untuk bekerja untuk saya untuk VS2015.

(Perhatikan bahwa di sinilah file SUO tinggal sekarang)

Mike Asdf
sumber
9

Ini mungkin terjadi ketika Anda mereferensikan proyek versi .net framework yang berbeda (v4.5.2 vs v4.5 dalam kasus saya). Memperbaiki ini akan memperbaiki masalah Anda.

Claudiu Constantin
sumber
Ini persis masalah saya. Menambahkan proyek baru ke solusi yang v4.5.2 dan saya mereferensikannya dari proyek lain yang v4.5. Mengganti proyek baru ke v4.5 dan itu bekerja dengan baik.
Drew
7

Apa yang terjadi oleh saya adalah, mengubah zona waktu di komputer menjadi +5: 30 dan kemudian mengubahnya kembali -5: 00 adalah hal yang membingungkan VS. Ketika saya me-restart VS, itu berfungsi dengan baik lagi.

MB
sumber
tidak tahu. Saya memang menggunakan kontrol versi sehingga bisa jadi bingung dengan perkembangan zaman ???
MB
6

Periksa semua versi Framework project Anda, dan pastikan semuanya sama, atau setidaknya project A tidak mereferensikan project B saat versi .NET Framework project B lebih tinggi.

Daniel Minnaar
sumber
6

Saya mengalami masalah ini dengan VS2015 Update 3 RC dan Xamarin (proyek bersama .Forms).
Kompilator tidak berhenti, kesalahan hanya ditampilkan di jendela keluaran.
Ini hanya untuk proyek Xamarin (dengan proyek VB.NET semuanya telah bekerja seperti yang diharapkan) ...
Untuk mencoba menemukan alasan masalahnya, saya telah mengubah Output Build di VS:
- menu "Tools - Options"
- dari panel kiri : "Proyek dan Solusi: Bangun dan Jalankan":
- ubah "Verbositas Output MSBuild" dari "Minimal" menjadi "Diagnostik"

Setelah melakukan itu, kompiler berhenti dan kesalahan muncul ..
Setelah itu, saya telah mengatur opsi kembali dari "Diagnostik" ke "Minimal" (seperti sebelumnya) dan ... itu telah bekerja juga dengan "Minimal" (untuk memastikan, saya juga telah memulai ulang VS) ...

Jadi .. tampaknya (setidaknya dalam kasus saya) bahwa hanya untuk mengubah (menyentuh) pengaturan (MSBuild Output Verbosity ") telah menyelesaikan masalah dan ini adalah bug di VS dan / atau Perangkat Lunak integrasi Xamarin ...

FredyWenger
sumber
1
Mengapa jawaban ini tidak lebih disukai? Ini memberi Anda solusi sempurna untuk men-debug apa yang salah
John Demetriou
Cek jawaban saya di bawah ini. Saya juga mengira solusi Anda benar, tetapi saya menyadari bahwa bahkan dengan tingkat keluaran "Diagnostik", "tab Kesalahan" saya akan tetap kosong. Seperti yang lain, Anda kemungkinan besar tetap mengaktifkan "tab Error" dan itulah mengapa itu mulai berfungsi dengan baik ...
jpo38
6

Saya tidak tahu apakah saya satu-satunya yang menghadapi masalah ini.

Dalam kasus saya ketika saya membuka Visual Studio zona waktunya berada di GMT + 1: 00, dan pembuatan berhasil. Kemudian saya mengubah zona waktu menjadi GMT + 5: 30, dan kemudian tanpa me-restart Visual Studio, saya mencoba menjalankan aplikasi, tetapi build gagal tanpa kesalahan atau peringatan.

Saya mengubah kembali zona waktu ke GMT + 1: 00, dan pembuatan berhasil tanpa kesalahan apa pun.

Rudresha Parameshappa
sumber
Terima kasih banyak - ini membuatku gila sepanjang sore :-)
indra
2

Apa yang saya lakukan (setelah semua hal di atas, dan masih tidak berhasil) adalah melalui semua folder bin dan menghapus semuanya (yaitu proyek yang direferensikan juga).

Ini berhasil untuk saya, semoga berhasil juga untuk Anda.

Rodney Ellis
sumber
2

Saya mengalami masalah ini dan ternyata saya usingmenunjuk ke namespace kosong. Menghapus usingklausul itu memperbaiki masalah

Phate01
sumber
2

Periksa peringatannya ..

Saya memiliki perpustakaan kelas baru dengan target .Net Framework 4.5 sedangkan proyek referensi adalah 4.0 yang menyebabkan masalah referensi.

Setelah memodifikasi perpustakaan kelas dengan target .Net Framework 4.0 itu bekerja dengan benar.

gyansada
sumber
2

Tidak ada jawaban di atas yang membantu saya. Setelah banyak percobaan akhirnya saya menemukan bahwa masalahnya adalah referensi dari Microsoft.Net.Compilers v2.10.0 di salah satu proyek. VS 2015 menggunakan MSBuild v14 yang tidak mendukung versi Microsoft.Net.Compilers.

Petar Petrov
sumber
1

Bagi saya masalah ini terkait dengan pengaturan aturan CodeAnalysis kustom " IncludeAll ".

Tampaknya Compiler mengamati pengaturan ini:

  <IncludeAll Action="Error" />

Tapi IntelliSense mengambil TINDAKAN default pada Id Aturan yang "Peringatan". Ini akan menjelaskan perilaku yang dilihat oleh @RobertHarvey di mana Anda memfilter output dengan Build Only dan ini ditampilkan sebagai ERROR , tetapi jika Anda memfilter menurut Intellisene Only, ini akan ditampilkan sebagai PERINGATAN . Memfilter keluaran dengan default Build + Intellisense tampaknya tidak deterministik!

Perbaikan saya adalah dengan secara eksplisit menyebutkan aturan bahwa saya ingin menjadi peringatan sebagai peringatan.

  <Rules AnalyzerId="Microsoft.CodeAnalysis.CSharp" RuleNamespace="Microsoft.CodeAnalysis.CSharp">
    <Rule Id="CS0618" Action="Warning" />
  </Rules>

Ini berpotensi menjadi masalah dengan Intellisense yang tidak mengamati opsi IncludeAll . Lihat https://github.com/dotnet/roslyn/issues/7400

felickz.dll
sumber
1

Ini juga dapat terjadi saat memigrasi proyek ke Visual Studio 2015 dengan Framework yang lebih lama. Periksa Peringatan Anda di Daftar Kesalahan Anda. Anda mungkin melihat sesuatu seperti proyek saat ini .NET versi 2.0 dan membutuhkan .NET 3.5 atau lebih tinggi. Jika Anda menemukan peringatan serupa, buka properti proyek Anda dan targetkan .NET Framework yang diperlukan.

Tyriddik
sumber
1

Harap periksa peringatan. Terkadang build gagal karena beberapa jenis peringatan juga.

Krish
sumber
1

Saat membuka solusi, menghasilkannya, saya dapat melihat beberapa kesalahan atau peringatan build dilaporkan di "tab Output", sedangkan "tab Error" tidak melaporkan masalah apa pun.

masukkan deskripsi gambar di sini

Anda dapat melihat bahwa konfigurasi "Tab Error" OK ("Build only" dan "Seluruh solusi" dipilih).

Perhatikan bahwa, setelah penyelidikan mendalam, saya mengidentifikasi bahwa ini hanya terjadi jika "Tab kesalahan" belum ditampilkan saat Anda memulai pembuatan!

Jika Anda mengaktifkan "tab Error" sebelum melakukan build (atau jika itu adalah tab saat ini saat Anda meluncurkan Visual), kesalahan / peringatan yang baru ditemukan akan muncul dengan benar:

masukkan deskripsi gambar di sini

Seolah-olah "tab Kesalahan" diinisialisasi hanya ketika terlihat (yang mungkin benar karena perlu lebih banyak waktu untuk muncul pertama kali Anda mengekliknya ...), dan, jika tidak, itu tidak mengumpulkan build hasil ...

Sejauh ini, tidak ada jawaban yang lebih baik untuk masalah ini selain " mengaktifkan tab Error sebelum membangun ".

Dan saya yakin itulah mengapa "restart VS" kadang berhasil. Anda melihat "Tab Error" kosong, Anda menutup dan membuka kembali VS, kemudian, "Tab Error" ditampilkan secara default sebagai VS memulihkan tab aktif saat ini dari sesi sebelumnya. Anda membangun dan sekarang "tab Error" terisi ...! Anda baru saja beruntung.

Catatan: Melaporkan bug VS: https://connect.microsoft.com/VisualStudio/feedback/details/3132689

jpo38
sumber
Solusi ini berhasil untuk saya. Itu terjadi pada saya sekali - tidak ada peringatan yang ditampilkan. Saya membuka jendela Daftar Kesalahan dan membangun kembali solusinya. Peringatan itu ditampilkan kali ini. Saya tidak dapat mereproduksi masalah yang sama lagi bahkan setelah memulai ulang VS.
IAN
1

Bagi saya build tersebut gagal tanpa kesalahan, tetapi setelah beberapa penyelidikan ringan saya menemukan bahwa referensi ke MSHTML tidak ditemukan oleh VS.

masukkan deskripsi gambar di sini

Perilaku ini muncul setelah pembaruan ke Windows 10. Untuk memperbaikinya, Anda perlu mendaftarkan perakitan dari GAC. Untuk cara melakukannya, buka jawaban ini MSHTML DLL di Windows 10 di mana saya menemukan jawaban saya.

Fid
sumber
0

Diambil dari jawaban ini

Kompilasi gagal, tidak ada kesalahan yang ditampilkan di jendela keluaran.

Untuk mencoba menemukan alasan masalahnya, saya telah mengubah Output Build di VS: - menu "Tools - Options" - dari panel kiri: "Projects And Solutions: Build And Run": - ubah "MSBuild Output Verbosity" dari " Minimal "hingga" Diagnostik "

Setelah melakukan itu, saya menemukan alasan sebenarnya yang sebenarnya adalah kesalahan dengan proyek ketergantungan. Saya memproyeksikan bahwa saya bergantung dibangun untuk kerangka kerja yang berbeda (lebih baru) dari milik saya. Sehingga menciptakan masalah. Kesalahan hanya dikeluarkan ketika saya menempatkan Verbositas Keluaran ke Diagnostik

John Demetriou
sumber
Ini bukan hanya tentang mencari tahu masalahnya, ini tentang mempelajari cara memecahkan masalah. Inilah mengapa saya menyertakan proses debugging jawaban lain, karena itulah yang membantu saya mengetahui apa yang salah. Bukan hanya tebakan acak tentang apa masalahnya
John Demetriou
0

Bagi saya, itu adalah properti terlampir yang nakal. Masalahnya tidak selalu karena saya tidak bisa melihat kesalahan; kesalahannya adalah sebagai berikut:

Node anak "2" keluar sebelum waktunya. Mematikan. Informasi diagnostik dapat ditemukan dalam file di direktori file sementara bernama MSBuild _ *. Failure.txt.

Awalnya, build akan macet dan tidak menampilkan kesalahan apa pun kecuali Anda mencoba untuk menutup Visual Studio. Setelah restart, itu akan bertahan lama setelah dibangun, kemudian menampilkan pesan di atas.

Menghapus .vsfolder tersembunyi , membangun kembali / membersihkan solusi, dan memulai ulang Visual Studio tidak berhasil. Menghapus properti terlampir tidak; ergo, bisa jadi kode sebenarnya di suatu tempat yang tidak berfungsi dengan baik.

Sebagai upaya terakhir, saya akan menghapus setiap perubahan terbaru satu per satu hingga masalah teratasi karena tidak ada solusi di sini yang membantu.

Memperbarui

Karena saya terbiasa mengembangkan aplikasi WPF tradisional, saya tidak menyadari Anda tidak dapat memiliki namespace XAML "dirantai" menggunakan .s dengan UWP. Saya mencoba untuk mengatur properti terlampir menggunakan

My.Namespace:SomeClass.SomeProperty="SomeValue"

Padahal, seharusnya begitu

MyNamespace:SomeClass.SomeProperty="SomeValue"

Ini tidak secantik yang saya suka, tapi tampaknya itu satu-satunya cara untuk pergi.

James M
sumber
0

Apa yang berhasil untuk saya:

Menutup semua dokumen memecahkan masalah bagi saya. (Solusi yang sama jika intelliSense berhenti bekerja)

(tab klik kanan - Tutup Semua Dokumen)

Ziv Weissman
sumber
0

Coba ini

Mengecualikan "mstscax.dll"dari Dependensi berhasil bagi saya.

Emile Cloete
sumber
0

Masalah khusus: Saya baru saja mengalami masalah yang sama. Tak satu pun dari jawaban di atas tampaknya membantu.

Masalahnya adalah untuk program Konsol, metode Main () tidak dapat ditandai sebagai async ** yang saya lakukan. Tidak yakin, mengapa Visual Studio tidak dapat menentukan mengapa tepatnya proyek tidak dibangun (saya mendapat 0 kesalahan dan 0 peringatan setiap saat). Saya menggunakan Visual Studio 2015 Enterprise.

Fix: Solusi untuk itu ada di sini .

pengguna3613932
sumber
0

Setelah memperbarui file dll, ternyata file baru tersebut menargetkan versi .NET Framework yang lebih tinggi. Solusinya adalah pergi ke Properti Proyek dan mengubah kerangka kerja Target ke versi yang sesuai.

berguna
sumber
0

MSBuild.exe diubah di direktori (C: \ Program Files (x86) \ MSBuild \ 14.0 \ Bin)

jadi saya hanya mengganti MSBuild.exe dari pc lain yang memiliki vs2015.

Sekarang bekerja dengan baik.

sabarish
sumber
0

Saya menemukan solusi dengan mengubah .NET Framework dari 4.5.2 menjadi 4.0.

Masalah disebabkan oleh referensi yang tidak kompatibel dengan kerangka kerja yang saat ini dipilih.

Stefan Đorđević
sumber
0

Saya baru saja menghapus filter saya dan itu berhasil untuk saya. Ikon hapus semua filter di dekat kotak pesan.

Nevin jose
sumber
0

Mulailah sebuah proyek baru. Salin semua kode Anda hingga di bawah namespace ConsoleApp38450983450.

Tempel ke proyek baru di bawah namespace ScrewedUpConsoleApp102343

Bangun dan jalankan dengan sempurna

Brandon Norris
sumber
-1

Anda harus mengatur kotak kombo di sisi kanan di bawah daftar kesalahan, di 'Seluruh Solusi' untuk melihat semua kesalahan. masukkan deskripsi gambar di sini

Milad Koudarzi
sumber
1
Pertanyaan yang agak lama ini sudah memiliki jawaban yang diterima, sepertinya jawaban Anda yang sangat singkat dan tidak deskriptif di sini tidak menambah banyak hal. Juga, jangan tidak link ke gambar di situs eksternal tetapi menambahkan gambar ke jawaban Anda!
Dux