it-swarm-tr.com

Kaynak denetimine Visual Studio .suo ve .user dosyalarını eklemeli miyim?

Visual Studio çözümleri, iki tür gizli kullanıcı dosyası içerir. Biri, ikili bir dosya olan çözüm .suo dosyasıdır. Diğer bir metin dosyası olan proje .user dosyasıdır. Bu dosyalar tam olarak hangi verileri içeriyor?

Ayrıca bu dosyaları kaynak kontrolüne eklemem gerekip gerekmediğini de merak ediyorum (benim durumumda Subversion). Bu dosyaları eklemezsem ve başka bir geliştirici çözümü kontrol ederse, Visual Studio otomatik olarak yeni kullanıcı dosyaları oluşturur mu?

783
Ben Mills

Bu dosyalar, genel olarak makinenize özel olan kullanıcı tercihleri ​​yapılandırmalarını içerir, bu nedenle SCM'ye koymamak daha iyidir. Ayrıca, VS onu hemen hemen her çalıştırdığınızda değiştirecektir, bu yüzden her zaman SCM tarafından 'değiştirildi' olarak işaretlenecektir . Ben de dahil etmiyorum, 2 yıl boyunca VS kullanarak bir projedeyim ve Bunu yaparken sorun yok. Tek küçük sıkıntı, hata ayıklama parametrelerinin (yürütme yolu, dağıtım hedefi vb.) Bu dosyalardan birinde (hangisini bilmediğiniz) depolanmasıdır; bu nedenle, onlar için bir standartınız varsa, yapamazsınız ' 'diğer geliştiriciler için tüm geliştirme ortamının' kullanıma hazır olmasını 'SCM yoluyla yayınlayın.

638
Fabio Ceconello

Bunları eklemeniz gerekmez - kullanıcı başına ayarları içerirler ve diğer geliştiriciler kopyalarınızı istemez.

131
Steve Cooper

Diğerleri, kaynak kodu altında *.suo ve *.user dosyalarına sahip olmanın neden iyi bir fikir olmadığını açıkladı.

Bu kalıpları svn:ignore özelliğine 2 nedenden dolayı eklemenizi öneririm:

  1. Yani diğer geliştiriciler bir geliştiricinin ayarlarıyla ıslanmayacak.
  2. Bu nedenle, durumu görüntülediğinizde veya.. Dosyaları kaydettiğinizde, bu dosyalar kod tabanını karıştırmaz ve eklemeniz gereken yeni dosyaları gizlemez.
66
JXG

İkili dosyayı (* .suo) taahhüt etmiyoruz, ancak .user dosyasını taahhüt ediyoruz. .User dosyası örneğin projede hata ayıklamak için başlangıç ​​seçeneklerini içerir. Projenin özelliklerinde başlangıç ​​seçeneklerini "Hata ayıkla" sekmesinde bulabilirsiniz. NUnit'i bazı projelerde kullandık ve nunit-gui.exe'yi projenin başlangıç ​​seçeneği olarak yapılandırdık. .User dosyası olmadan, her ekip üyesinin dosyayı ayrı ayrı yapılandırması gerekir.

Bu yardımcı olur umarım.

47
Thomas

Bu soruyu/cevabı Google’da 2011’de bulduğumdan beri, bir saniye alıp Visual Studio 2010 tarafından oluşturulan * .SDF dosyalarının bağlantısını, muhtemelen sürüm kontrolüne eklenmemesi gereken dosyaların listesine ekleyeceğimi düşündüm ( IDE onları yeniden yaratır). Bir * .sdf dosyasının başka bir yerde meşru bir kullanımı olabileceğinden emin olmadığımdan, yalnızca belirli [projectname] .sdf dosyasını SVN'den yoksaydım.

Neden Visual Studio dönüşüm sihirbazı 2010, büyük bir SDF veritabanı dosyası yaratıyor?

25
Stephen

Hayır, bunları kaynak kontrolüne eklememelisiniz - dediğiniz gibi - bunlar kullanıcıya özeldir.

SUO (Çözüm Kullanıcı Seçenekleri): Kayıtlar tüm seçenekleri olabilir. çözümünüzle ilişkilendirin ki böylece. Her açtığınızda, özelleştirmeler size. yaptım. 

.User dosyası proje için kullanıcı seçeneklerini içerir (SUO çözüm için iken) ve proje dosyası adını genişletir (örneğin, any.csproj.user anything.csproj projesi için kullanıcı ayarlarını içerir).

22
JRoppert

Bu, Microsoft’un bu konudaki görüşü gibi görünüyor:

Kaynak denetimine .suo dosyaları ekleme (ve düzenleme)

Projenizin neden DebuggingWorkingDirectory'i .__'da depoladığını bilmiyorum. suo dosyası. Bu kullanıcıya özel bir ayarsa, dikkate almalısınız. bunu * .proj.user dosya adına kaydetme. Bu ayar paylaşılabilir ise. Projede çalışan tüm kullanıcılar arasında depolamayı düşünmelisiniz. Proje dosyasında kendisi.

Suo dosyasını kaynak kontrolüne eklemeyi bile düşünmeyin! SUO (soluton user options) dosyası, kullanıcıya özgü ayarları ve aynı .__ çalışan kullanıcılar arasında paylaşılmamalıdır. çözüm. Suo dosyasını scc veritabanına ekliyorsanız ben yapmam. IDE 'da başka hangi şeyleri kıracağınızı bilirsiniz, ancak kaynak kontrolünden. web projeleri scc entegrasyonunu kıracaksınız, lan vs VSS erişimi için farklı kullanıcılar tarafından kullanılan internet eklentisi ve siz de kullanabilirsiniz. Hatta scc'nin tamamen bozulmasına neden olabilir (sizin için geçerli olabilecek suo dosyasında saklanan VSS veritabanı yolu başka bir kullanıcı için geçerli olmayabilir).

Alin Constantin (MSFT)

17
Scott W

Varsayılan olarak Microsoft'un Visual SourceSafe'i bu dosyaları kaynak kontrolüne dahil etmez, çünkü bunlar kullanıcıya özel ayar dosyalarıdır. SVN'yi kaynak kontrolü olarak kullanıyorsanız, bu modeli izlerdim.

17
cori

Visual Studio bunları otomatik olarak yaratacaktır. Onları kaynak kontrolüne sokmayı tavsiye etmiyorum. Yerel bir geliştiricinin SOU dosyasının VS'nin bu geliştiriciler kutusunda kararsız davranmasına neden olduğu birçok kez olmuştur. Dosyayı silip ardından VS'nin yeniden oluşturmasına izin vermek her zaman sorunları çözdü. 

11
Bloodhound

MSDN web sitesinde , açıkça 

Çözüm kullanıcı seçenekleri (.suo) dosyası, kullanıcı başına çözüm içerir. seçenekler. Bu dosya kaynak kodu kontrolü için teslim edilmemelidir.

Bu yüzden, kaynak kontrolünüzdeki maddeleri kontrol ederken bu dosyaları yoksaymanın oldukça güvenli olduğunu söyleyebilirim. 

10
Farax

Yapmam. "Kullanıcı" başına değişebilecek herhangi bir şey genellikle kaynak kontrolünde iyi değildir. .suo, .user, obj/bin dizinleri

8
ScaleOvenStove

Bu dosyalar, çözüme göre bağımsız olması gereken kullanıcıya özel seçeneklerdir. Visual Studio gerektiğinde yenileri yaratacaktır, bu nedenle kaynak kontrolü için kontrol edilmeleri gerekmez. Nitekim, bireysel geliştiricilerin çevrelerini uygun gördükleri şekilde kişiselleştirmelerine izin verdiği için, muhtemelen bunu yapmamak daha iyi olacaktır.

7
benefactual

.User dosyalarını kaynak olarak kontrol edemezsiniz, çünkü bu kullanıcıya özeldir. Uzak makinenin ve diğer kullanıcı bağımlı şeylerin adını içerir. Bu bir vcproj ile ilgili dosya.

.Suo dosyası sln ile ilişkili bir dosyadır ve "çözüm kullanıcısı seçenekleri" (başlangıç ​​proje (ler) i, pencere konumu (yerleştirilen ve nereye, yüzen) vb.

İkili bir dosya ve "kullanıcı ile ilgili" bir şey içerip içermediğini bilmiyorum.

Şirketimizde bu dosyaları kaynak kontrolü altına almayız.

6
ugasoft

Proje hakkında genellikle tek bir geliştiriciye atanan belirli ayarları içerir (örneğin, uygulamanızı hata ayıkladığınızda başlatılacak başlangıç ​​projesi ve başlangıç ​​sayfası gibi).

Bu yüzden onları sürüm kontrolüne eklememek daha iyidir, VS'yi yeniden oluşturmak, her geliştiricinin istediği ayarlara sahip olmasını sağlar. 

6
massimogentilini

.user kullanıcı ayarlarıdır ve bence .suo çözüm kullanıcısı seçenekleridir. Bu dosyaların kaynak kontrolü altında olmasını istemiyorsunuz; her kullanıcı için yeniden yaratılacaklar.

4
Nick

Rational ClearCase kullanarak cevap hayır. Kaynak kodu kontrolünde sadece .sln &. * Projeleri kaydedilmelidir.

Diğer satıcılara cevap veremiyorum. Doğru hatırlıyorsam, bu dosyalar ortamınıza "kullanıcıya" özel seçeneklerdir.

3
titanae

Bu dosyaların hiçbirini sürüm kontrolüne eklemeyin. Bu dosyalar, diğer iş istasyonlarında sorunlara yol açacak sürüm kontrolüne alınmışsa, iş istasyonuna özel bilgilerle otomatik olarak oluşturulur. 

1
Amila

Diğer cevaplarda da açıklandığı gibi, kullanıcı/makineye özgü oldukları için hem .suo hem de .user kaynak kontrolüne eklenmemelidir (VS'nin en yeni sürümleri için BTW .suo, kaynak kodunun dışında tutulması gereken özel geçici .vs dizinine taşınmıştır. tamamen kontrol).

Bununla birlikte eğer uygulamanız VS'de hata ayıklamak için bazı ortam ayarları gerektiriyorsa (bu ayarlar genellikle .user dosyasında tutulur), örnek bir dosya hazırlamak (.user.SAMPLE gibi adlandırılır) ve kaynak kontrolüne eklemek yararlı olabilir. Referanslar.

Böyle bir dosyada kodlanmış mutlak yol yerine, göreceli olanları kullanmak ya da ortam değişkenlerine güvenmek mantıklıdır, bu nedenle örnek başkaları tarafından kolayca tekrar kullanılabilecek kadar genel olabilir.

1
AntonK

Hayır, geliştiriciye/makineye özgü yerel ayarlar olduğu için kaynak kontrolü konusunda karar vermemeliler.

GitHub, Visual Studio kullanıcıları için https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

Svn için aşağıdaki global-ignore özelliği ayarlanmış:

* .DotSettings.User
* .onetoc2
* .suo
.vs
PrecompiledWeb
Thumbs.db
obj
çöp Kutusu
ayıklama
* .user
* .Vshost. *
* .tss
* .dbml.layout

0
Stephen Kennedy

Yok hayır.

Sadece kısa bir cevap istedim ve hiç yoktu.

Yürütülebilir dizin bağımlılıklarınızı ProjectProperties> Debugging> Environment içinde ayarlarsanız, yollar '.user' dosyalarında depolanır. 

Bu dizgiyi yukarıda belirtilen alana koyduğumu varsayalım: "PATH = C:\xyz\bin"  

<LocalDebuggerEnvironment>PATH=C:\xyz\bin$(LocalDebuggerEnvironment)</LocalDebuggerEnvironment>

Bu OpenCV'de çalışırken bize çok yardımcı oldu. Farklı projeler için farklı OpenCV sürümleri kullanabilirdik. Diğer bir avantaj ise, projelerimizi yeni bir makineye kurmak çok kolay oldu. Karşılık gelen bağımlılık dir kopyalarını kopyalamamız gerekiyordu. Bu yüzden bazı projeler için kaynak kontrolüne '.user' eklemeyi tercih ediyorum. 

Yine de, tamamen projelere bağlı. İhtiyaçlarınıza göre bir çağrı alabilir.

0
adheen