Bagaimana menentukan mengapa studio visual mungkin melewatkan proyek saat membangun solusi


95

Saya men-debug pekerjaan orang lain dan solusinya cukup besar. Ketika saya mencoba membangun semuanya, beberapa proyek dalam solusi tidak dibangun dan dilewati begitu saja. Melihat jendela keluaran selama proses pembangunan mengatakan:

1> ------ Lewati Rebuild Semua: Proyek: pr1lib ------

Bagaimana cara menentukan mengapa build ini dilewati? Saya tidak dapat menemukan hasil tambahan.

Ini dengan VS2008 dan solusinya terdiri dari kode c # dan c ++.


Selain jawaban yang diberikan, pastikan pengaturan konfigurasi solusi memiliki setiap proyek dalam status yang dicentang (kotak centang dicentang) yang harus dibersihkan / dibangun:Build > Configuration Manager: check as needed
Metro Smurf

2
Untuk memecahkan masalah mengapa proyek dilewati. Pastikan untuk menambahkan /flke pengaturan build untuk mendapatkan file msbuild.log yang menyertakan alasannya. Misalnya:skipped, due to false condition; ( ('$(Configuration)' == 'Release') and ('$(Platform)' == 'Any CPU') ) was evaluated as ( ('Debug' == 'Release') and ('AnyCPU' == 'Any CPU') ).
T_D

2
@T_D - di mana di Visual Studio saya akan menambahkan '/ fl'? Di manakah log akan muncul? Jika Anda menambahkan ini sebagai jawaban, saya akan memberi suara positif, karena sebagian besar jawaban lain adalah berbagai tebakan acak untuk menjawab masalah daripada menjawab pertanyaan asli, yang sekadar tentang mendapatkan lebih banyak informasi tentang masalah tersebut.
PaulG

@PaulG Lihat jawaban saya di bawah. Cukup atur pengaturan di Opsi.
Darren Wood

Jawaban:


88

Klik kanan solusinya, pilih Properties dan kemudian Configuration Properties. Di sini Anda dapat memilih proyek mana yang akan dibangun.

[ sunting ]:
Lihat komentar Kdt: ... ketika saya melihat di properti konfigurasi ... target pembangunan proyek telah dikonfigurasi untuk "Platform Campuran" sementara solusi ditetapkan untuk membangun "Semua CPU".

* Ketika masalah ini terjadi pada saya, Proyek utama hanya memiliki 'Semua CPU' dan itu mengatur dll anak ke 'CPU apa pun' juga, namun, saya menghapus profil itu dan hanya menyisakan 'x86'. Memilih x86 hanya untuk dll membuatnya mulai bekerja
[/ edit]


20
Saya mengalami "Skipped build" yang misterius, dan ketika saya melihat properti konfigurasi, proyek tersebut memang ditandai untuk dibangun. Namun, target pembangunan proyek telah dikonfigurasikan untuk "Platform Campuran" sementara solusi ditetapkan untuk membangun "Semua CPU" - mengubahnya agar cocok untuk memperbaiki masalah.
kdt

2
Dalam kasus saya, meskipun semua proyek dan solusinya semuanya disetel ke "Semua CPU", satu proyek melewatkan pembangunan. Hanya setelah saya menetapkan solusi ke "Platform Campuran" lalu kembali ke "CPU Apa Pun" yang akan dibangunnya. Melihat perbedaan dari file solusi sebelum dan sesudah, itu berubah dari {784BDC39-5783-4128-956E-99EA062FA8FB}.Debug|AnyCPU.ActiveCfg = Debug|AnyCPUmenjadi {784BDC39-5783-4128-956E-99EA062FA8FB}.Debug|AnyCPU.ActiveCfg = Debug|Any CPU. Satu-satunya perbedaan adalah penambahan spasi antara "Any" dan "CPU" di akhir baris.
Simon Tewsi

6
Dalam kasus saya, semua proyek disetel ke "Semua CPU" dan masalah diselesaikan dengan menghapus proyek (menghapus proyek tidak menyebabkan file dihapus) dan menambahkannya kembali ke solusi.
Hamid Mayeli

40

Saya baru saja mengalami masalah yang sama- "bongkar proyek" dan "muat ulang proyek" menyelesaikan masalah!


Saya memiliki masalah yang sama, dan bongkar / muat ulang berfungsi, tetapi masalahnya tampaknya kembali yang mengganggu ketika terjadi pada banyak proyek dan Anda harus melepas / memuat ulang masing-masing ... Ada yang tahu jika ada cara untuk menghindari ini sama sekali?
Liron

Ini memperbaiki masalah bagi saya ketika Visual Studio salah melaporkan proyek sebagai sudah up-to-date di jendela keluaran, ketika mencoba untuk melakukan build.
Kevin Laity

33

Operasi pembangunan, rekondisi, dan pembersihan sedang dilewati. Bongkar dan muat ulang tidak membantu, begitu pula dengan memulai ulang Visual Studio.

Setelah saya menghapus proyek dari solusi dan menambahkannya kembali, itu tidak lagi dilewati. Untuk menghapusnya, di Solution Explorer, klik kanan proyek> Hapus> OK. Untuk menambahkannya kembali, di Solution Explorer, klik kanan solusi> Tambah> Proyek yang Ada dan pilih proyek Anda


7
Ingatlah bahwa Anda harus menambahkan kembali semua ProjectReferences ke proyek itu.
Joseph

9

Jika confixguration adalah x64 dan compiler x64 tidak diinstal, proyek akan dilewati.


1
+1 Jenius. Anda dapat menemukan SP1 di sini: microsoft.com/download/en/details.aspx?id=10986
ashes999

Jika kompiler x64 tidak diinstal, Anda bahkan tidak dapat memilih x64.
Calmarius

Solusi dan konfigurasi proyek dapat menentukan dan menggunakan entri berjudul "x64". Ddl ke-3 untuk lengkungan prosesor. (Target platform - separuh halaman properti build) adalah yang tidak tersedia
StingyJack

9

Solusi saya sama seperti yang disebutkan sebelumnya: Hapus -> Tambahkan proyek yang ada

Tetapi solusi ini menyiratkan bahwa referensi antar proyek hilang

Untuk menghindari penambahan kembali referensi: dan jika Anda menggunakan sistem kontrol versi seperti GIT atau TFS atau apa pun, adalah mungkin untuk mencapai tujuan dengan langkah-langkah berikut:

  1. Pastikan bahwa semua perubahan dilakukan / check-in sebelum operasi

  2. Pergi melalui semua proyek menghapus mereka dari solusi dan menambahkan yang sudah ada

  3. Perhatikan bahwa file .sln telah berubah

  4. Simpan file .sln baru, tetapi batalkan perubahan pada semua file .cspoj dengan sistem kontrol versi



5

Visual studio 2008, bisa jadi karena compiler 64 bit tidak terpasang.

Panel Kontrol -> Program dan Fitur -> Microsoft Visual Studio 2008 professional -> [klik dua kali]

Di Visual Studio Dialog

Berikutnya -> Tambah / Hapus Fitur -> (Di Bawah) Visual C ++ -> (pilih) kompiler x64 dan Alat


4

Masalah ada di VS 2010 juga; solusi yang diusulkan: mengedit konfigurasi build, membersihkan, mengubah / mengubah kerangka target, TIDAK berfungsi. Tapi bongkar dan muat ulang proyek tidak.


4

Saya punya yang aneh yang mungkin perlu didokumentasikan di antara kemungkinan lain di sini ..

Saya telah menambahkan Proyek Bersama ke solusi saya, dengan kode yang digunakan dalam dua atau tiga proyek lainnya. Seperti yang Anda ketahui - Proyek Bersama hanyalah kode, dan bukan proyek dalam pengertian tradisional .. Anda tidak dapat 'membangun' proyek bersama, itu hanya kode yang disematkan ke dalam proyek lain, dan kemudian dibangun di sana.

Tetapi entah bagaimana file solusi saya telah diperbarui seolah-olah proyek bersama adalah hal itu sendiri yang perlu dibangun. Saya menduga bahwa setiap kali saya mencoba untuk membangun dan saya tidak mengubah kode dalam proyek bersama, maka saya pikir 'tidak ada yang berubah, lewati bangunan itu'

Saya menemukan proyek bersama di solution.slnfile seperti:

Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Api.Common", "Api.Common\Api.Common.shproj", "{EC580471-D78A-4509-AC46-BD565553AD60}"

..yang baik-baik saja. Apa yang tidak baik adalah bahwa proyek ini juga muncul GlobalSection(ProjectConfigurationPlatforms) = postSolutionseperti:

    {EC580471-D78A-4509-AC46-BD565553AD60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    {EC580471-D78A-4509-AC46-BD565553AD60}.Debug|Any CPU.Build.0 = Debug|Any CPU
    {EC580471-D78A-4509-AC46-BD565553AD60}.Release|Any CPU.ActiveCfg = Release|Any CPU
    {EC580471-D78A-4509-AC46-BD565553AD60}.Release|Any CPU.Build.0 = Release|Any CPU

Saya menghapus empat baris itu dari .slnfile saya , dan sekarang semuanya tampak bahagia lagi


Bagus! Ini dia! Saya menghapus setiap baris dari file .sln yang dimulai dengan baris yang hanya bertuliskan "Global" dan menghapus semua baris ke "EndGlobal". Kemudian berhasil lagi.
Ted

Ketika saya menghapusnya, mereka ditambahkan kembali secara otomatis ketika saya membangun solusinya, namun mereka kembali dengan keempat entri yang disetel sama dengan Debug | CPU apa pun. Tapi itu memperbaiki masalah saya.
EspressoBeans

Ini juga masalah saya. Saya menghapus semua entri konfigurasi build yang terkait dengan GUID proyek bersama, dan kompilasi berfungsi sekali lagi. Sangat membingungkan.
Zoop

3

Hei, baru perbaiki yang ini. Pikir itu mungkin membantu. Kemungkinan besar Anda tidak menginstal kompiler yang sesuai bersama dengan studio visual. Ini terjadi pada saya hari ini - secara default, penginstal VS 2008 tidak menginstal kompiler x64 C ++.

Jika Anda memiliki SP1, hapus instalannya sebelum mengubah instalasi VS. Setelah selesai, instal SP1 lagi.


2

Buka menu build dan pilih "manajer konfigurasi". Ini akan menunjukkan proyek mana yang dikonfigurasi untuk dibangun dalam konfigurasi yang Anda pilih.


2

Saya mengalami hal serupa yang baru saja terjadi pada saya. Saya tidak yakin apa masalahnya, tapi itu tidak akan Membersihkan , Membangun , Membangun kembali , dll. Saya mengoperasikan Visual Studio 2017 dan menginginkan netstandard2.0perakitan. Masalah bagi saya adalah entah bagaimana jenis proyek salah, mungkin saya mulai dari netcoreappperpustakaan kelas, sesuatu seperti itu, terjebak dalam file Solusi , saya tidak ingat. Bagaimanapun, saya mencadangkan proyek, membuat netstandardproyek perpustakaan kelas baru , dan memperhitungkan bit yang dicadangkan, dan itu memperbaikinya untuk saya. HTH seseorang.


2
  1. Tutup studio visual
  2. Buka file sln dengan notepad
  3. hapus semua hal seperti ini: {B546C55D-9321-4FC0-B25C-46844222BEBE} .Debug dengan Fakes | x86.ActiveCfg = Debug dengan Fakes | x86 (akan ada banyak dari mereka)

4. simpan file 5. buka visual studio dan semuanya lebih baik


2
Mengapa ini membantu? Tambahkan beberapa penjelasan dan sedetail mungkin sehingga pembaca selanjutnya dapat membantu memahami mengapa Anda perlu mengambil langkah-langkah tersebut.

2

saya memperbarui ke 15.9.11, ... setelah beberapa build, masalah yang sama: sebagian besar proyek dilewati (yang dibangun sedetik lalu tanpa masalah). Membongkar / memuat ulang solusi selalu membantu dalam kasus saya, tetapi itu akan segera terjadi lagi.

Saya tidak tahu mengapa ... kecuali bug besar di VS2017

Saya memeriksa manajer konfigurasi, semua tanda centang disetel untuk dibangun.

Mungkin ada hubungannya dengan paket nuget, tapi itu hanya tebakan

Solusinya hanya memiliki c ++ / vcxproj, tidak ada csproj. 64 dan 32 diinstal keduanya


2

Hal pertama yang perlu Anda lakukan adalah mendiagnosis mengapa build melewatkan proyek. Jadi untuk mendapatkan output build yang terperinci, ubah verbositas menjadi detaileddi tempat berikut di Visual Studio.

masukkan deskripsi gambar di sini


8
Sayangnya, pengaturan verbositas tidak membantu. Outputnya masih hanya mengatakan 'proyek yang dilewati' tanpa menjelaskan alasannya.
PaulG

1

Punya masalah yang sama, menemukan bahwa pengaturan proyek untuk Itanium CPU, mengubahnya menjadi Intel memperbaikinya.


1

Mengalami masalah yang sama dengan VS2005, semua konfigurasi sudah benar. Itu bahkan melewatkan perintah proyek Bersihkan.

Akhirnya Bongkar / Muat ulang melakukan keajaiban.


1

Klik kanan pada Solusi di penjelajah solusi Anda, lalu klik Properti di bagian bawah menu. Di jendela properti, klik pada Properti Konfigurasi -> Konfigurasi di panel kiri, Anda akan melihat daftar proyek di panel kanan, pastikan kotak centang Bangun dicentang di jendela sembulan.


1

Jika solusi Anda berisi file proyek NuGet (* .nuproj), coba bongkar dan kemudian buat kembali solusi Anda.

Ini berhasil untuk saya setelah tidak satu pun di atas berhasil.


0

Saya menemukan bahwa kadang-kadang ketika Anda memiliki platform target yang ditetapkan untuk mengatakan x86 dalam solusi Anda dan dalam proyek Anda, proyek sebenarnya tidak selalu memilihnya.

Untuk memeriksa ulang, buka properti proyek dan lihat apakah Anda dapat memilih platform itu dalam pengaturan Build-> Platform jika Anda tidak bisa, maka Anda harus pergi ke manajer konfigurasi dan membuat konfigurasi itu.


0

Saya mengalami masalah ini dengan beberapa proyek Windows CE pada PC baru. "Unload project" dan "Reload project" tampaknya memperbaiki masalah, tetapi sebenarnya Visual Studio hanya beralih ke platform yang berbeda dan membangunnya.

Ternyata meskipun platform WinCE saya ditampilkan sebagai platform aktif, Visual Studio tidak "benar-benar" melihatnya. Solusinya adalah menginstal ulang WinCE SDK dengan hak istimewa administrator :

  • Pastikan Visual Studio 2008 tidak berjalan.
  • Buka "Visual Studio 2008 Command Prompt" sebagai Administrator. Pada Windows 7 cukup klik kanan jalan pintas dan pilih opsi "Run as administrator".
  • Masukkan perintah berikut: msiexec /log SDKInstallLog.txt /package <the path to your .msi file>
  • Ketika ditanya apakah Anda ingin melakukan penginstalan khusus atau lengkap, pilih kustom, dan perintahkan penginstal untuk mengabaikan penginstalan dokumentasi (langkah ini tidak diperlukan dalam kasus saya; sebenarnya saya hanya memintanya untuk "memperbaiki" instalasi yang ada. )
  • Install

0

VS 2008 akan melewatkan target x64 jika Anda tidak menginstal kompiler x64. VS 2008 tidak secara default. Semacam duh, hal.


0

Saya mengalami masalah yang sangat mirip setelah membuat proyek dari decompiler dari Telerik, lalu mencoba mengompilasinya kembali. Proyek ini dilewati setiap kali saya mencoba membangunnya kembali. Mencoba banyak saran di atas, tetapi bagi saya, itu adalah .NET Framework yang dipilih di properti proyek.

Proyek klik kanan dalam file solusi, pilih properti, tab aplikasi, ubah kerangka target dari 4.0 menjadi 3.5.

Kemudian, membangun kembali, dan saya mendapat banyak kesalahan referensi perakitan yang hilang, yang masuk akal karena saya belum menambahkan referensi ke sana.


0

Saya memperbarui satu pembaruan kecil dari Visual Studio 2017 dan kemudian penginstal mengingatkan saya untuk me-restart komputer saya, tetapi saya tidak me-restart. Ketika saya membangun proyek atau solusi saya di Visual Studio 2017, saya menemui masalah yang sama di atas. Saya kira pembaruan mungkin kunci, jadi saya me-restart komputer saya, saya melakukannya.:>


0

Saya mengalami masalah ini di Visual Studio 2017 15.9.4 dan setelah beberapa mencari dan meluangkan waktu saya menemukan bahwa dalam solusi saya, file .csproj dari salah satu proyek rusak setelah penggabungan di TFS. (Saya dapat membangun proyek lain dengan mengeluarkan proyek bermasalah dari solusi). Bagaimana saya menyelesaikan masalah saya adalah saya membandingkan file .csproj sebelum dan sesudah penggabungan dan melakukan perbaikan itu. Dan dengan memperbaiki maksud saya karena jenis proyek saya sendiri adalah .netStandard Saya menghapus baris yang tidak perlu termasuk Konfigurasi PropertyGroup , semua dan lainnya dalam file .csproj baru untuk membuatnya mirip dengan versi gaya .netstandard sebelumnya.


0

Saya memiliki masalah serupa, saya memiliki satu proyek yang tidak dapat dimuat di penjelajah solusi karena beberapa alasan. Ketika saya memuat proyek itu, itu bekerja seperti pesona.


0

Saya baru saja mengalami masalah ini:

Telah memperbarui VS 2017 ke versi terbaru 15.9.11 dan beberapa proyek saya diperbarui ke .net core 2.2. Saya awalnya memuat semua proyek mencoba membangun / membersihkan / membangun kembali dan semuanya dilewati. Ikuti di bawah ini untuk menyelesaikan:

  1. Saya membongkar setiap proyek dan memuatnya kembali.
  2. Menutup semua contoh VS dan membuka VS sebagai administrator (klik kanan jalan pintas dan pilih opsi "Jalankan sebagai administrator")

Itu saja semuanya kembali beraksi dan saya dapat membangun semua proyek dengan sukses.


0

Studio visual 2017

Setelah menambahkan konfigurasi di Pengelola Konfigurasi

Klik Kanan pada Project -> Project Only -> Build Only / Rebuild Only / Clean Only

jika semua pengaturan lainnya sudah benar.


0

Masalah: Rebuilding, Build, Clean melewatkan semua proyek saya kecuali dua di antaranya.

Solusi yang tidak berhasil untuk saya:

  1. Pengaturan konfigurasi solusi seperti yang diharapkan sehingga tidak ada perubahan yang membantu.

  2. Bongkar dan muat ulang tidak berhasil.

Alasan terjadinya:

Ini terjadi karena target .NET framework lebih tinggi (4.7) untuk 2 project tersebut tetapi lebih rendah untuk project lainnya. Sebuah prompt awalnya muncul meminta saya untuk menginstal .NET 4.7, yang saya lakukan, tetapi ternyata tidak dapat mengenali bahwa itu diinstal tanpa me-restart mesin saya.

Solusi yang berhasil:

  1. Memulai ulang mesin saya berhasil. Setelah memulai ulang dengan benar mengenali bahwa .NET 4.7 diinstal.
  2. Sebagai alternatif, menurunkan kerangka target proyek dengan mengklik kanan pada proyek -> Properties -> Application -> Target Framework dan mengaturnya sama dengan proyek lain yang dilewati, juga menyelesaikan masalah.

Saya akan merekomendasikan menginstal .NET Framework terbaru dan memulai ulang mesin untuk menghindari masalah lebih lanjut.


0

Ini akan melewati pembangunan pada setiap proyek yang memiliki proyek dependen yang gagal dibangun.

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.