Bir .NET uygulamasında başvuruları işlemenin en iyi yolu nedir


9

Son zamanlarda iş yerinde biz bir proje etiketli / dallı ve eski klasör yapısına işaret eden dll / proje başvuruları nedeniyle bazı derleme sorunları vardı bir sorunla karşılaştı.

Her proje için bir 'harici bin' klasörü oluşturduk ve başvurulan dll'leri bu klasörlere kopyaladık. Bu en iyi yol mu yoksa bununla başa çıkmak için belirli bir endüstri standardı var mı?

Yanıtlar:


21

Nuget'in bağımlılıkları ele almanın en iyi yolu olduğunu söyleyebilirim .

nuget sürümleri yönetebilir VE bağımlılıkları yerel nuget sunucunuzdan otomatik olarak indirebilir .

Yerel bir sunucu oluşturmak / yapılandırmak oldukça kolaydır. Yeni bir boş ASP.NET projesi oluşturun ve nuget-servernuget paketini yükleyin (nuget; kullanarak).

Bu, TFS kullanarak tüm bağımlılıkları kontrol etmeniz ve / veya sürümlerini yönetmeniz gerekmeyeceği anlamına gelir.


1
Çoğu şirketin bunu iyi kullanmadığını düşünüyorum. Aslında, bunun yararlarını elde etmek için düzgün bir şekilde yapılandırılmış bir yapı sunucusu görmedim, bu yüzden her yerde görmek istediğim bir şey için +1.
deltree

Ben nuget komutları (veya bir şey) paketleri ters çevrilmemiş tutmak ve bağımlılıkları otomatik olarak indirmek için olup olmadığını bir soru sormayı planlıyorum ... Ve ilk arama sonucu nuget bunu kutunun dışında desteklediğini söylüyor! Teşekkürler!
Mormegil

5

Gerçekten değil - Microsoft referansları ele almanın en iyi yolunun projenizi büyük bir çözümde oluşturmak olduğunu söylüyor. Evet, biliyorum, onlar da gerçekten demek istiyorlar.

Desen ve uygulama ekibi TFS ile ilgili en iyi uygulamalarını bir araya getirmiştir, ancak genel yapılar için geçerlidir. 3 tür çözüm kurulumu vardır, "1 büyük çözüm", çoğu insanın sırayla yapı oluşturarak ve eserleri ortak bir dizine kopyalayarak yapıları yönetmek için nasıl kullandığına çok benzeyen bölümlenmiş bir yaklaşım vardır. sunucu çapında 'dahil' veya 'kütüphane' yoluna sahip) ve Bölümlenmiş olanın daha karmaşık bir sürümü olan Çoklu Çözüm kurulumuna sahiptir.

Onlar söylüyor

In general you should:

    Use a single solution strategy unless the resulting solution is too large to load into Visual Studio.
    Use multiple solutions to create specific views on sub-systems of your application.
    Use multiple solutions to reduce the time it takes to load a solution and to reduce build time for developers.

TFS için, yıkımın dışsallarına daha çok benzeyen çalışma alanı eşlemesine güvenmek yerine, projenizdeki herhangi bir dış projenin dallanmasını önerirler. Şahsen, onların tavsiyelerinin en iyi uygulama olmadığını düşünüyorum, ancak referansları kullanırken alacağınız herhangi bir derleme sorununu en aza indirmeye çalıştıklarını düşünüyorum.

Sadece gerekenleri, her şeyi yapan her gece yapan bir derleme oluşturmak ve her dizinde bir dizine kopyalar sistemi senkronize tutmak için en iyi yolu - özellikle test cihazları - sistem kısayol denemek için sorunları vardı. Bunun yalnızca .NET uygulamaları için geçerli olduğunu unutmayın, C ++ uygulamaları hala çalışan bileşenlerde veya arama bileşenlerinde sorunlara neden olabilecek benzer yönlere sahip olmadığından hala çalışma eğilimindedir. Bu yaklaşım iyi çalışıyor, ancak her zaman kısmi yapıların iyi olduğunu varsayamazsınız, her şeyi vaping ve yeniden inşa etmek en güvenli.


Bu, birden fazla proje (API DLL'leriniz, uygulama projeniz) içeren bir çözümdür.
Snoop

1

Bu, çözümünüzün nasıl yapılandırıldığına ve sürüm kontrol yazılımı özelliklerinizin ne olduğuna bağlıdır. Önceden, belgeleri ve üçüncü tarafların referans aldığı herhangi bir kitaplık için özel bir klasör içeren çözümlerimizde, inşa edilmemiş / atlanmış bir projeyi tutuyorduk. Çözümün bir parçası olduğundan, bu dosyaların yoluna göreli yol kullanılarak başvurulabilir. TFS 2010'a geçtikten sonra bu projeden kurtulduk ve basitçe bu çözümün ekip projesinde ana şubelerimize paralel bir "Destek" dizini ekledik. Her iki durumda da, geliştiricilerin makinelerini nasıl yapılandırdıklarına bakılmaksızın, kütüphanenin kaynak kontrol sürümü aynı yerde olur.


0

Sürüm denetimi için alt sürüm kullanırken, bu amaçla "externals" özelliğini kullanabilirsiniz . Bu, paylaşılan bir DLL dosyasının yerel bir kopyasını geçerli projenizin yakınındaki göreli bir yolda tutmanıza olanak tanır. Bu, projenizin ana dizinini farklı bir klasöre değiştirseniz bile, DLL'in değişmeyen göreli bir dosya yolu ile başvurulmasını kolaylaştırır. Haricilar, hangi belirli sürümü veya düzeltmeyi dahil edeceğinizi de tanımlamanızı sağlar.

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.