Bagaimana cara menghapus konfigurasi proyek di Visual Studio 2008?

97

Saya memiliki solusi Visual Studio 2008 di mana saya telah mengimpor sejumlah proyek yang sudah ada sebelumnya. Project adalah kode sampel bahasa campuran (C #, VB, C ++ / CLI). Mereka saat ini memiliki beberapa konfigurasi, tetapi saya ingin setiap project hanya memiliki satu konfigurasi "Debug".

Di manajer konfigurasi, saya menghapus konfigurasi lain (mis. "Rilis"), tetapi ketika saya melakukannya, ada pesan peringatan untuk memberi tahu saya bahwa konfigurasi tersebut tidak akan dihapus dari masing-masing proyek.

Dan memang ketika saya menavigasi ke proyek individu, masih ada "Rilis" dan konfigurasi lainnya, meskipun di tingkat solusi hanya ada "Debug".

Bagaimana cara terbaik menghapus konfigurasi tambahan ini dari setiap proyek? Apakah saya mengabaikan beberapa cara untuk melakukan ini di GUI, atau haruskah saya mengedit file proyek secara langsung?

Eric
sumber

Jawaban:

191

Di Pengelola Konfigurasi, pilih "Edit ..." di kolom "Konfigurasi" untuk setiap proyek (bukan melalui tarik-turun bernama Konfigurasi solusi aktif) yang memiliki konfigurasi yang ingin Anda hapus.

Pada dialog yang muncul, tandai setiap konfigurasi yang tidak diinginkan dan pilih "Hapus".

Timbo
sumber
22
Terima kasih! Saya berharap Visual Studio menawarkan cara yang lebih cepat untuk menghapus konfigurasi di semua proyek. Jika Anda memiliki selusin proyek atau lebih dalam sebuah solusi, sulit untuk melalui masing-masing proyek dan secara manual menghapus konfigurasi.
Stefano Ricciardi
1
@Atias Saya mohon untuk berbeda. Dan tidak, itu belum diubah (dari saat saya menjawab ini di tahun 2009 hingga versi 2013).
Timbo
1
Jika saya pergi ke Pengelola Konfigurasi, hapus konfigurasi solusi aktif melalui edit, kemudian konfigurasi tersebut memang dihapus dari Pengelola Konfigurasi. Tetapi Jika Anda sekarang membuka properti proyek Anda, maka konfigurasinya masih ada. Jika Anda melihat ke dalam file .vcxproj, maka konfigurasinya masih ada. Saya menggunakan Visual Studio 2013 (Professional dan Ultimate)
Matthias
1
@Matthias Baca dengan cermat (terutama bagian untuk setiap proyek ). Mungkin pilihan kata / urutan dalam jawaban saya tidak dioptimalkan dengan benar untuk pemahaman terbaik, tetapi itu tidak mengubah apakah ini berfungsi atau tidak.
Timbo
1
@Stefano Ricciardi 5 tahun kemudian, apakah Anda menemukan solusi untuk rasa sakit seperti itu?
cppBeginner
10

Untuk membantu menggambarkan jawaban timbo, inilah yang dia bicarakan. Seperti beberapa komentator, saya butuh beberapa saat untuk menemukan ini.

masukkan deskripsi gambar di sini

Tom Winter
sumber
8

Cara terbaik untuk mengotomatiskan penghapusan konfigurasi dari semua proyek solusi dilakukan dengan menggunakan perintah konsol Nuget untuk mengakses visual studio apis.

Pergi ke Tools , Nuget Package Manager , Package Manager Console .

Dari sana gunakan:

Get-Project -All | Foreach { $_.ConfigurationManager.DeleteConfigurationRow("Release") }

Dengan cara ini Anda telah menghapus semua konfigurasi dari semua proyek yang dipanggil "Release". Saya sangat menyarankan Anda untuk selalu memeriksa perbedaan pada sistem versi kode sumber Anda, Anda hanya akan melihat csprojdan dalam beberapa kasus slnfile terpengaruh, jika Anda menggunakan transformasi konfigurasi (seperti Web.Release.config) mereka akan tetap ada.

Informasi lebih lanjut tersedia di dokumentasi api khusus versi studio visual di sini , ini berfungsi setidaknya dari VS 2015 untuk bahasa C ++, C #, F #, VB.

Giulio Caccin
sumber
Dapatkah Anda memberikan beberapa referensi, misalnya bagaimana Anda membuat kode ini? Apakah ada tutorial? Saya ingin memastikan itu tidak akan merusak proyek saya, dapat memeliharanya sendiri, dan mungkin menggunakannya untuk hal-hal lain.
javaLover
Terima kasih! Saya melihat pohon topik (bagian atas halaman) di link Anda adalah Docs > .NET > ... > DeleteConfigurationRow. Apakah ini hanya berfungsi untuk solusi .net? Apakah Anda juga mengujinya untuk solusi C ++?
javaLover
Tidak berfungsi di VS2019 pada solusi C ++ saya: Kesalahan HRESULT E_FAIL telah dikembalikan dari panggilan ke komponen COM. Pada baris: 1 karakter: 30 + ... | Foreach {$ _. ConfigurationManager.DeleteConfigurationRow ("DLL-Impor ... + CategoryInfo: OperationStopped: (:) [], COMException + FullyQualifiedErrorId: System.Runtime.InteropServices.COMException Error HRESULT E_FAIL telah dikembalikan dari panggilan ke COM komponen. Pada baris: 1 karakter: 30 + ... | Foreach {$ _. ConfigurationManager.DeleteConfigurationRow ("DLL-Impor ...
Terry
Bekerja dengan baik untuk saya, solusi proyek C ++. Terima kasih atas tipnya!
Nordic Mainframe
3

Tidak menjawab pertanyaan khusus ini yang saya tahu tetapi dengan VS2013 Anda dapat membuka tab Manajer Properti, memperluas semua konfigurasi proyek, melakukan beberapa pilihan menggunakan tombol CTRL atau SHIFT dan menghapus konfigurasi dari beberapa proyek sekaligus.

scott_ish
sumber
Apakah ini hanya untuk project C ++? Saya kira tab yang Anda maksud adalah 'View> Other Windows> Property Manager'?
Steven Anderson
1

Di VS2017 / VS2019, jika Anda drop down "Konfigurasi solusi aktif", ada <edit> di sana yang memungkinkan Anda menghapus konfigurasi dari semua proyek.

Tangkapan layar menunjukkan <edit>

PolicyWatcher
sumber