Soru TFS ve başvurulan DLL'lerle ilgili yardım


TFS ve VS 2010 kullanıyoruz.

TFS'yi kaynak denetimi olarak kullanan bir proje üzerinde çalışıyorum. Ben (log4net gibi) indirdiğim ve projemde başvurulan oldukça az sayıda dll var.

Yeni bir programcı TFS'ye bağlandığında ve projemi kaynak kontrolünden çıkardığında, başvurulan tüm dosyaları kaçırdığı söylenemezdi.

Burada neyi yanlış yaptım? Kaynak kontrolde başvurulan DLL'leri nasıl ekleyebilirim. Bunlara başvurmadan önce tüm bu donanımları projeme eklemem gerekir mi? Onlara başvurduğumda, sadece dosya sistemimde bulundukları yere göz attım.

Teşekkür ederim!


32
2017-10-19 18:18


Menşei




Cevaplar:


3. parti DLL'leri için en iyi uygulamayı sln / proj dosya yapınızda bir "Kütüphane" klasörü oluşturmak ve gerekli tüm DLL'leri referans için bu yerel klasöre kopyalamak için buldum. Ayrıca, bu DLL'lerin kaynak kontrolüne göre kontrol edildiğinden emin olmak istersiniz. Bu şekilde, proje üzerinde çalışan herkes, tüm DLL'lerin aynı sürümlerini alır ve referans yolları tam olarak aynıdır.

Tüm geliştiricilerin tüm DLL'ler için aynı indirme yapısını korumaları gerekeceğinden, keyfi yükleme veya yükleme konumundaki 3. taraf libs'lerine başvurmak sorun yaratacaktır. Ayrıca, herkes DLL'leri proje yapısının dışına atıyorsa, herkesin aynı sürümde olmasını garanti etmek daha zordur.

Diğer seçenek ise herkesin DLL'leri GAC'ye yüklemesini sağlamaktır, ancak bu özellikle sürüm yönetimi ve dağıtımıyla birlikte gerçek bir acı olabilir.


46
2017-10-19 18:25



Bu, herhangi bir geliştiricinin (yeni veya başka bir şekilde) yalnızca en son, F5'i vurması ve "DLL X'i nereden alabilirim veya DLL Y'yi nasıl yüklerim?" - Hector Correa
Kütüphane klasörünü oluşturdum sln Projeyi sunucudan aldığım için tüm referansları eklemem gerekiyor. - Mohsen
Kütüphane klasörü yerine .. daha iyi bir şekilde NuGet paket yöneticisini çözüm seviyesinde yönetebilirsiniz. Ben sadece bu üçüncü taraf dll'ler nuget aracılığıyla mevcut değildir durumunda çözüm üzerinde hemfikirdim. - sandeep talabathula
teşekkürler, harika uygulama - smoothumut


Tüm ek DLL'leri kopyaladığım proje klasörümde bir "ThirdPartyDLL" klasörü oluşturdum. Sonra ben kaynak kaşif içine gitti ve bu temelleri benim uygulama belirli sürümleri için DLLS doğru sürümünü kullanıyorum emin olabilmek için takım vakıf sunucusuna eklendi (ve böylece herkes benim gibi aynı sayfada ).

Görünüm - diğer pencereler - Source coontrol explorer Proje klasörünü sağ tıklayın - öğeleri klasöre ekleyin

İçinde DLL'lerle belirli bir klasör seçemezsiniz, ancak bunun yerine klasör içindeki tekil DLL dosyalarını seçebilirsiniz. Ardından bu pencerede "ThirdPartyDLL" klasörünü göreceksiniz.

Bu yapıldıktan sonra, bu dlls takım temeli kaynak kontrolünde. Bir dev denetlediğinde, DLL'lerin en güncel sürümünü alırlar.

Uygulamanızdaki eski referansları kaldırmayı ve bunları üçüncü taraf klasörünüze değiştirmeyi unutmayın.

DLL'leri bin klasörüne kopyalamak için kullanılır ancak DLL'leri yükselttikten sonra karşılaştığım sorun oldu. Başlangıçta projem küçükken, büyük bir anlaşma değildi. Artık, oluşturduğum birden çok DLL ve uygulamasının olması, projemin dışında DLL'lerin tutarlı sürümlerini korumak için çok zor oldu. En iyi örneğim satın aldığım lisanslama dll. Bu, tüm uygulamaların ve kütüphanelerin aynı sürümde olması gerektiğinde yükseltildi. Birini unutursam çok tuhaf sorunlar yaşadım ya da uygulama işe yaramadı. Artık tek bir klasörde her şeye sahip olduğum için, değişikliği bir kez yaparım ve her şey yükseltiliyor.

Bu yardımcı olur umarım.


7
2018-01-02 14:21





Andy'nin önerisi iyi bir şey ve bunu geçmişte kullandım. Şu andaki işimde, bir ağ paylaşımında, hepimizin oluşturması için bir "referans" klasörümüz var. Burada çok hızlı bir ağımız var, ancak tüm geliştiriciler tek bir ofiste. Çok sayıda uzaktan geliştiriciniz veya yavaş bir ağınız varsa bu çözüm işe yaramaz.


2
2017-10-19 18:39





Bununla başa çıkmak için çeşitli yöntemler denedim ve bin klasörde gerekli dll'leri bırakmaya ve kaynak kontrolü için projeye dahil olduklarından emin olmaya karar verdim. İnsanların bunun iyi bir fikir olmadığını söylediğini duydum ama kimse bunun için iyi bir mantık sağladı ve benim için iyi çalıştı.

İkinci seçeneğim, bir ağ paylaşımında biraz yer açmak ve çeşitli 3. parti dll'lerini orada düzenlemek olacaktır. Dosyaları normal bir yol olarak referans olarak kullandıkları sürece, dosyalarınızı sıra numaralarıyla klasörlere koyabilirsiniz ve herkesin ihtiyaç duyduğu her şeye erişebilmesi gerekir.

Proje içinde ayrı bir klasör eklemek de işe yarayabilir, ancak dağınık görünebilir, çünkü sürümünüzde bulunmasını istemediğiniz fazla dosya ile sonuçlanırsınız.


1
2017-10-19 18:39