Neden “Başlangıç ​​Olarak Ayarla” seçeneği sln dosyasında değil suo dosyasında saklanıyor?


175

Bu ayarın çözüm dosyasında depolanması gerektiği anlaşılıyor, böylece tüm kullanıcılar ve kaynak kodu kontrolünün bir parçası arasında paylaşılıyor. Suo dosyasını kontrol etmediğimizden, her kullanıcı bunu ayrı ayrı ayarlamalıdır ki bu tuhaf görünüyor.

Yanıtlar:


46

Neden kullanıcıya özgü olmayan bir tercih olmalı?

10 dosya içeren bir çözümüm varsa ve bir geliştirici öncelikle bu araçlardan birini test ediyor / kullanıyorsa, neden başlattığımı etkiler?

Bence MS bu konuda doğru seçimi yaptı. Proje ben başlamak istiyorum mutlaka projeye uzaktır diğer geliştiriciler başlamak istiyorum.


133
Sıklıkla, hata ayıklama için çoğu kişinin istediği başlangıç ​​projesi olması muhtemel bir projeniz olur (örneğin, web sitesi) ve başlangıç ​​projesi olarak bir sınıf kütüphanesi istemezsiniz. Neden MS, genel bir varsayılan başlangıç ​​projesi ayarlamak ve sonra izin için uygun bir mekanizma (bir hack gibi görünmüyor, yani .sln dosyasının en üstündeki koyarak) sağlayamadı neden görmüyorum. istenirse geçersiz kılmak için suo.
Jez

27
Konuşmak gerekirse ... Varsayılan başlangıç ​​projesi olarak ayarlamak istediğiniz projeyi sln dosyasındaki ilk proje olarak taşıyın. Suo dosyanızı silin, çözümü ve woila'yı tekrar açın, bu ilk proje başlangıç ​​olmalıdır. Buna katkıda bulunan başka faktörler de olabilir, ancak kaynak kontrolünden temiz bir projeyi teslim aldığımda özellikle bir projenin varsayılan olarak kaldığını fark ettiğimde buldum.
misteraidan

2
Bu, bir derleme sunucusu kullanırken bir sorundur, çünkü doğru Başlangıç ​​projesini ayarlamak için suo'yu sürüm kontrolüne kontrol etmeyi gerektirir ve sürüm kontrolüne suo'yu kontrol etmek kötü bir fikirdir.
markshancock

2
@markshancock: Bir derleme sunucusu neden başlangıç ​​projesine önem veriyor? Bunu hiç sorun olarak görmedim.
Jon Skeet

18
Üzgünüm Jon, ama sana burada -1 vereceğim. Geliştiricilerin kod indirme ve daha sonra F5'e basma yeteneğine sahip olması gerektiğine inanıyorum. Tabii ki, girişimlerinizi kişisel koşullara göre uyarlama yeteneğiniz olmalıdır, ancak yukarıda belirtildiği gibi çoğu kullanıcı için bir varsayılan ayarlayabilmeliyiz. Oliver'ın cevabı bunu yapmanın bir yolu gibi görünüyor, ancak çoklu başlangıç ​​projelerinin kaynak kontrolünü kontrol etmek imkansız görünecek gibi görünüyor, ki bu bir utanç.
Stephen Holt

376

Jon'un söylediği gibi herkesin StartUp Projelerini kendileri tanımlaması kesinlikle gereklidir . Ama özel bir temerrüde sahip olmak harika olurdu ve anlayabildiğim gibi, bu mümkün!

Çözüm dizininizde bir .suo dosyanız yoksa, Visual Studio .sln dosyanızdaki ilk projeyi varsayılan başlangıç ​​projesi olarak alır.

  1. Visual Studio'yu kapatın ve favori metin düzenleyicinizde .sln dosyasını açın. 4. satırda itibaren, içinde kapsüllü tüm projeleri görmek Project- EndProjecthatlar.

  2. İstediğiniz varsayılan başlangıç ​​projesini kesin ve en üst konuma yapıştırın.

  3. .Suo dosyanızı silin.

  4. Çözümünüzü Visual Studio'da açın. Ta daa!

Jon'un bilmediği bir şey biliyorsan özel bir ödül var mı? ;-)


1
Sonda gelen! Bu beni uzun zamandır rahatsız ediyor ama artık değil! Tkanks :)
mdonatas

4
Sadece bir çözüm klasöründe değilse işe yarıyor gibi görünüyor: Yani bu hile kök projeler için, sahip olduğum bazı çözümlerle olan tecrübelerimden çalışıyor.
jdehaan

25
VAOV! Skeeted Jon! :))
Andrei Rînea

3
İki varsayılan proje varsa - her ikisini de varsayılan olarak nasıl başlatabilirim?
Amy B

6
@Oliver: Çözüm -> Başlangıç ​​Projelerini Ayarla ... -> Birden çok başlangıç ​​projesi öğesine sağ tıklayın. Tek tıklamayla çoklu başlar.
Anton

46

Çoğu durumda, bu does bu konuda bir varsayılan olması mantıklı.

Varsayılan bir başlangıç ​​projesini barındırmak ve bunu .sln dosyasında saklamak çok daha iyi olur, ancak bu, .suo dosyasındaki bir geliştirici tarafından geçersiz kılınabilir. Başlangıç ​​ayarı .suo dosyasında bulunmazsa, .sln dosyasındaki varsayılan başlangıç ​​projesi kullanılır.

Aslında, bu Visual Studio'nun UserVoice önerilmiştir .


Bağlantılı UserVoice "oylama için kapalı" ancak neden olduğu hakkında yorum yok.
yzorg

Bu kesinlikle kabul edilen cevaba kıyasla daha iyi bir duruş. Bir keresinde bunu kullanıcı bazında belirlemenin bir avantaj olduğunu düşünen bir ekipte çalışmadım. Sadece taze klonlar, vb. Üzerinde ekstra kuruluma yol açar.
Trevor Reid

3

slnStartupProjectBaşlangıç ​​Projesi'ni otomatik olarak ayarlamak için Windows için küçük bir komut satırı yardımcı programı yazdım :

slnStartupProject slnFilename projectName

Ben şahsen her zaman bir kukla ayarlar cmake ile çözüm ürettikten sonra başlangıç ​​projesi ayarlamak için kullanınALL_BUILD projeyi çözümdeki ilk proje olarak .

Kaynak GitHub'dan üzerindedir. Çatallar ve geri bildirimler açıktır.


Bunun için teşekkürler! Cmake ile tam olarak bu sorunu yaşıyordum ve yardımcı program harika çalışıyor!
sippa

1
Rica ederim! Mutlu etmek için yardımcı olur karar vermeden önce bana yıllardır beni rahatsız ediyor gibi. Çoğu durumda insanların neden bu konuda felsefi kavgalara sahip olduklarını gerçekten anlamayın.
michaK

Sen .. bekle ... ne? - .sln dosyanızı elle oluşturuyor musunuz? ... bu ne büyücülük?
19:32

3

GIT kullanıyorsanız, varsayılan SUO dosyasını kaydedebilir ve ardından kullanarak değişmeden olarak işaretleyebilirsiniz.

git update-index --assume-unchanged YourSolution.suo

Varsayılan başlangıç ​​grubunuzda birden fazla proje olmasını istiyorsanız da çalışır. Bildiğim tek dezavantaj, bu komutun SUO dosyasını yürütmek istemeyen herkes tarafından çalıştırılması gerektiğidir.

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.