Visual Studio 2008'de bir proje yapılandırmasını nasıl kaldırırım?


98

Önceden var olan birkaç projeyi içeri aktardığım bir Visual Studio 2008 çözümüm var. Projeler karma dil örnek kodudur (C #, VB, C ++ / CLI). Şu anda birden çok yapılandırmaları var, ancak her projenin yalnızca tek bir "Hata Ayıklama" yapılandırmasına sahip olmasını istiyorum.

Konfigürasyon yöneticisinde, diğer konfigürasyonları sildim (örn. "Sürüm"), ancak bunu yaparken, tek tek projelerden silinmeyeceklerini söyleyen bir uyarı mesajı vardı.

Ve aslında, tek bir projeye gittiğimde, çözüm düzeyinde sadece "Hata Ayıklama" olmasına rağmen, hala "Yayın" ve diğer yapılandırmalara sahip.

Her projeden bu ekstra konfigürasyonları en iyi nasıl kaldırabilirim? Bunu GUI'de yapmanın bir yolunu gözden kaçırıyor muyum yoksa sadece proje dosyalarını doğrudan mı düzenlemeliyim?

Yanıtlar:


191

Configuration Manager'da, kaldırmak istediğiniz yapılandırmalara sahip her proje için (Active solution configuration adlı açılır menü aracılığıyla değil) "Configuration" sütununda "Edit ..." öğesini seçin .

Açılan iletişim kutusunda istenmeyen her bir yapılandırmayı işaretleyin ve "Kaldır" ı seçin.


22
Teşekkür ederim! Visual Studio'nun tüm projelerde bir yapılandırmayı kaldırmanın daha hızlı bir yolunu sunmasını diliyorum. Bir çözümde bir düzine projeniz varsa, her birini gözden geçirmek ve yapılandırmayı manuel olarak silmek zahmetlidir.
Stefano Ricciardi

1
@Matthias Farklı olmak için yalvarıyorum. Ve hayır, değiştirilmedi (bunu 2009'da yanıtladığımdan 2013 sürümüne kadar).
Timbo

1
Configuration Manager'a gidersem, düzenleme yoluyla etkin bir çözüm yapılandırmasını silersem, yapılandırma gerçekten Configuration Manager'dan kaldırılır. Ama şimdi projenizin özelliklerine giderseniz, konfigürasyon hala oradadır. .Vcxproj dosyalarının içine bakarsanız, yapılandırma hala oradadır. Visual Studio 2013 (Professional ve Ultimate) kullanıyorum
Matthias

1
@ Matthias Dikkatlice okuyun (özellikle her proje için olan bölümü ). Belki cevabımdaki seçim / sıra kelimesi en iyi anlaşılabilirlik için uygun şekilde optimize edilmemiştir, ancak bunun işe yarayıp yaramadığını değiştirmez.
Timbo

1
@Stefano Ricciardi 5 yıl sonra bu tür ağrılara bir çözüm buldunuz mu?
cppBeginner

10

Timbo'nun cevabını göstermeye yardımcı olmak için, işte onun hakkında konuşuyor. Bazı yorumcular gibi bunu bulmam biraz zaman aldı.

görüntü açıklamasını buraya girin


9

Bir çözümün tüm projelerinden bir yapılandırmanın kaldırılmasını otomatikleştirmenin en iyi yolu, visual studio apis'e erişmek için Nuget konsol komutu kullanılarak yapılır.

Git Araçlar , Nuget Paket Yöneticisi , Paket Yöneticisi Konsolu .

Oradan kullanın:

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

Bu şekilde çağrılan tüm projelerden tüm konfigürasyonları kaldırmış olursunuz "Release". Kaynak kodu versiyonlama sisteminizdeki farklılıkları her zaman kontrol etmenizi şiddetle tavsiye ederim, sadece csprojve bazı durumlarda slnetkilenen dosyaları göreceksiniz , eğer konfigürasyon dönüşümlerini kullanıyorsanız (Web.Release.config gibi) hala orada olacaklar.

Görsel stüdyo sürümüne özgü API belgelerinde daha fazla bilgi mevcuttur , bu, C ++, C #, F #, VB dilleri için en az VS 2015'ten itibaren çalışır.


Bazı referanslar verebilir misiniz, örneğin bu kodu nasıl oluşturduğunuz? Herhangi bir eğitim var mı? Projemi bozmayacağından emin olmak, onu kendim sürdürebilmek ve muhtemelen başka şeyler için kullanmak istiyorum.
javaLover

Teşekkür! Bağlantınızdaki konu ağacının (sayfanın en üstünde) olduğunu fark ettim Docs > .NET > ... > DeleteConfigurationRow. Yalnızca .net çözümü için mi çalışıyor? C ++ çözümü için de test ettiniz mi?
javaLover

C ++ çözümümde VS2019'da çalışmadı: Bir COM bileşenine yapılan bir çağrıdan HRESULT E_FAIL hatası döndürüldü. Satırda: 1 karakter: 30 + ... | Her {$ _. ConfigurationManager.DeleteConfigurationRow ("DLL-İçe Aktar ... + CategoryInfo: OperationStopped: (:) [], COMException + FullyQualifiedErrorId: System.Runtime.InteropServices.COMException Hatası HRESULT E_FAIL bir COM çağrısından döndürüldü Bileşen. Satırda: 1 karakter: 30 + ... | Foreach {$ _. ConfigurationManager.DeleteConfigurationRow ("DLL-Impor ...
Terry

Benim için iyi çalıştı, C ++ projelerinin çözümü. Bahşiş için teşekkürler!
Nordic Mainframe

3

Bildiğim bu özel soruyu cevaplamıyor ama VS2013 ile Mülk Yöneticisi sekmesini açabilir, tüm proje konfigürasyonlarını genişletebilir, CTRL veya SHIFT tuşlarını kullanarak çoklu seçim yapabilir ve aynı anda birden fazla projeden konfigürasyonları silebilirsiniz.


Bu yalnızca C ++ projeleri için mi? Sanırım bahsettiğiniz sekme 'Görünüm> Diğer Pencereler> Mülk Yöneticisi' mi?
Steven Anderson

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.