Visual Studio'da Build Solution, Rebuild Solution ve Clean Solution arasındaki fark nedir?
Bunların her birini kullanmak için uygun zaman ne zamandır?
Visual Studio'da Build Solution, Rebuild Solution ve Clean Solution arasındaki fark nedir?
Bunların her birini kullanmak için uygun zaman ne zamandır?
Yanıtlar:
(Bağlantılar devenv.exe komut satırı anahtarlarına aittir , ancak menü öğeleriyle aynı işlevi görürler.)
.gitignore
dosyaya sahip olmak daha kolaydır . Ama cevaba göre, Clean benim deneyimimde her zaman özellikle kapsamlı bir iş yapmıyor.
Derleme çözümü: Değiştirilen kod dosyalarını (DLL ve EXE) derler.
Yeniden oluştur: Kod değiştirilip değiştirilmediğinden bağımsız olarak derlenen tüm dosyaları siler ve yeniden derler.
Temiz çözüm: Derlenmiş tüm dosyaları (DLL ve EXE dosyası) siler.
Bu YouTube videosunu ( Visual Studio Build vs. Rebuild vs. Clean (cevaplarla birlikte C # görüşme soruları) ) görebilirsiniz.
Rebuild ve (Clean + Build) arasındaki fark, çünkü bu konuda da bazı karışıklıklar var gibi görünüyor:
Fark, her proje için oluşturma ve temizleme dizisinin gerçekleşme şeklidir. Diyelim ki çözümünüzde “proj1” ve “proj2” olmak üzere iki proje var. Yeniden oluşturma yaparsanız "proj1" alır, derlenen dosyaları "proj1" için temizler (siler) ve derler. Bundan sonra ikinci projeyi alır "proj2", derlenmiş dosyaları "proj2" için temizler ve "proj2" derler.
Ancak bir “temiz” ve derleme ”yaparsanız, önce“ proj1 ”ve“ proj2 ”için derlenen tüm dosyaları silecek ve daha sonra ilk önce“ proj1 ”ve ardından“ proj2 ”oluşturacaktır.
Alındığı bu linke :
Oluştur, yalnızca son derlemeden bu yana değişen kaynak dosyaları derlemek ve bağlamak anlamına gelirken, Yeniden Oluştur, değiştirilip değiştirilmediklerinden bağımsız olarak tüm kaynak dosyaları derlemek ve bağlamak anlamına gelir. Yapı normal bir şeydir ve daha hızlıdır. Bazen proje hedefi bileşenlerinin sürümleri senkronizasyondan çıkabilir ve yapının başarılı olması için yeniden oluşturma gerekir. Uygulamada, asla Temizlemenize gerek yoktur.
Derleme Çözümü - Dosyaları değiştirmiş olan derlemeleri oluşturur. Bir derlemede değişiklik yoksa yeniden oluşturulmaz. Ayrıca hiçbir ara dosya silinmez.
En yaygın olarak kullanılır.
Yeniden Oluşturma Çözümü - Değişikliklerden bağımsız olarak tüm montajları yeniden oluşturur , ancak ara dosyaları bırakır.
Visual Studio'nun değişikliklerinizi en son derlemeye dahil etmediğini fark ettiğinizde kullanılır. Bazen Visual Studio hata yapar.
Temiz Çözüm - Tüm ara dosyaları silin.
Her şey başarısız olduğunda ve her şeyi temizleyip yeni başlamanız gerektiğinde kullanılır.
Ben sadece Rebuild önce Temiz tarafından takip Build inşa düşünüyorum. Belki yanılıyorum ... yorum?
file reference
yerine çözümünüze bir proje eklemekten kaynaklanmıştı , bu project reference
yüzden proje inşa emri bir diğerinden önce belirli bir proje inşa etmek zorunda olduğunu fark etmedi ve montaj sırasında olması gereken yerde mevcut değildi inşa etmek?
Derleme Çözümü - Dosyaları değiştirmiş olan derlemeleri oluşturur. Bir derlemede değişiklik yoksa yeniden oluşturulmaz. Ayrıca hiçbir ara dosya silinmez.
Çözümü yeniden oluştur ve daha önce yaptığı her şeyi görmezden gelerek çözümü sıfırdan oluşturacak
Temiz Çözüm , derlenmiş tüm dosyaları (örneğin EXE ve DLL dosyaları) bin / obj dizininden siler.
Derleme çözümü değişen çözümde herhangi bir proje inşa edecektir. Rebuild ne olursa olsun tüm projeleri oluşturur, temiz çözüm tüm geçici dosyaları siler ve bir sonraki derlemenin tamamlanmasını sağlar.
Derleme Çözümü - Derleme çözümü, uygulamanızı herhangi bir dosya değişikliği olan projelerin sayısını oluşturarak inşa edecektir. Ve mevcut ikili dosyaları temizlemez ve sadece bin veya obj klasöründeki güncellenmiş derlemeleri değiştirmez.
Yeniden Oluşturma Çözümü - Yeniden oluştur çözümü, uygulamanızdaki tüm projelerin temizlenmesiyle oluşturularak tüm uygulamanızı oluşturacaktır. Oluşturmadan önce bin ve obj klasöründeki tüm ikili dosyaları siler.
Temiz Çözüm - Temiz çözüm sadece bin ve obj klasöründeki tüm ikili dosyaları siler.
Yapı çözümü
Bu artımlı bir yapı gerçekleştirecektir. Başka bir deyişle, yalnızca değişen kod dosyaları oluşturacaktır. Eğer değiştirmediyse bu dosyalara dokunulmaz.
Çözümü yeniden oluştur
Bu, derlenmiş olan tüm dosyaları (örn. Exe ve DLL) siler ve dosyada kod değişikliği olup olmamasına bakılmaksızın her şeyi sıfırdan oluşturur.
Temiz çözüm menüsü
Bu menü, derlenmiş tüm dosyaları (örneğin EXE ve DLL dosyaları) bin / obj dizininden siler.
Yeniden oluştur = Temizle + Oluştur
İnsanların dışarıda bıraktığını düşündüğüm en önemli şey, Build and Clean'in her ikisi de Visual Studio'nun Proje / Çözümünüz hakkındaki bilgisine dayanarak gerçekleştirilen görevlerdir. Clean'in işe yaramadığından veya artık dosyalar bırakmadığından veya güvenilir olmadığından çok fazla şikayet görüyorum, aslında, güvenilir olmadığını söylediğiniz nedenler aslında daha güvenilir hale getiriyor.
Clean, yalnızca Visual Studio veya derleyicinin kendisinin oluşturduğu dosyaları ve / veya dizinleri kaldırır (temizler). Kendi dosyalarınızı veya oluşturduğunuz dosyaları / klasör yapılarını dış bir araç veya kaynaktan kopyalarsanız, Visual Studio "var olduklarını bilmez" ve bu nedenle bunlara dokunmamalıdır.
Temizleme işleminin temelde bir "del *. *" Gerçekleştirip gerçekleştirmediğini hayal edebiliyor musunuz? Bu felaket olabilir.
Build değiştirilmiş veya gerekli projelerde derleme gerçekleştirir.
Yeniden oluşturma , değişiklikten veya gerekli olandan bağımsız olarak bir derleme gerçekleştirir.
Temizle , geçmişte oluşturduğu dosyaları / klasörleri kaldırır, ancak başlangıçta hiçbir ilgisi olmayan her şeyi bırakır.
Umarım bu biraz ayrıntılı ve yardımcı olur.
Ben aa boş çözümümüz var BuildRebuildClean
ve üç sınıf kütüphanesi Models
, Repository
, Notification
.
Kullandığım Models
ve Repository
içinde Notification
sınıf kitaplığında.
Sonra:
Models
Kütüphane projesinde bazı kodları değiştirirseniz , çözümü İNŞA ET. Aşağıdaki ekran görüntüsünde DLL'nin zaman damgasına bakın, EXE Models
ve Notification
kütüphanesinde güncellenir .BuildRebuildClean
. Yaptığı tüm derlemeleri, EXE'leri ve başvurulan dosyaları yeniden derlemek için siler.Tüm bildiğim bir temiz ne "temiz yapmak" yapmak için kullanılan yapmaz - Eğer bir çözüm temiz ben obj ve bin dosyaları / klasörleri silmek gibi bekler gibi inşa kaynak taze bir ödeme oldu. Deneyimlerime göre, sık sık Clean and Build veya Rebuild'in derlendiği bilinen kaynakta garip hatalar ürettiği ve gerekli olan bin / obj klasörlerinin manuel olarak silinmesi olduğu zamanlar buluyorum .
Derleme çözümü yalnızca çözümde değişen projeleri oluşturur ve değişmemiş montajları etkilemez,
ReBuild ilk önce çözeltideki tüm montajları temizler ve sonra yapılan değişikliklerden bağımsız olarak tüm çözümü oluşturur.
Temizleyin, sadece çözeltiyi temizler.
Bu yalnızca "Çözüm Oluştur" seçeneğiyle ilgilidir.
Visual Studio'nun çözümleri gerçekten temizleyememesinden tamamen bıktım ve sizin için yapacak bu küçük aracı yazdım .
İlk önce VS'de çözümünüzü kapatın ve klasörünü Windows Gezgini'nden bu uygulamaya veya simgesine sürükleyin. Penceresinin altındaki ayara bağlı olarak, çözümünüzü GitHub'a manuel olarak yüklemeye veya başka biriyle paylaşmaya çalıştığınızda yardımcı olacak ek şeyleri de kaldırabilir:
Özetle, VS tarafından yeniden oluşturulabilen tüm "Hata Ayıklama" klasörlerini, Intellisense ve diğer önbellekleri sizin için Geri Dönüşüm Kutusu'na yerleştirir.