Kaynak kodu erişimi olan şirket içi NuGet paketlerini yönetme


20

Şirket içindeki projeler arasında paylaşmak istediğimiz birçok kurum içi kütüphanemiz var. Bunlar bazı gereksinimlerdir:

  • kütüphane kaynakları son projelerden ayrı depolarda depolanır
  • son projeler NuGet üzerinden kütüphaneleri içerir
  • bir proje üzerinde çalışırken kaynak kodun herhangi bir kütüphane için kolayca incelenmesi mümkün olmalıdır

Özel NuGet veri havuzumuzu kurmak sorun değil, kaynakları yönetmek. Kaynakları kaynak sunucu üzerinden göstermeye çalıştık ve bu işe yaramıyor , ama pek işe yaramadı: VS, harici kodda hata ayıklarken kaynakları indirir, ancak tanım / uygulamaya gitmeye çalıştığınızda değil. Temel olarak, sadece hata ayıklama yaparken kaynak koduna gidebilirsiniz, ki bu tam olarak ihtiyacımız olan şey değildir.

Yani, sorular:

  • kodu aynı repo / çözümde bulundurmak zorunda kalmadan dahili kütüphanelerin kaynak koduna erişim sağlamak için hangi yollar vardır
  • sembol sunucusunu / NuGet feed combo'yu VS'nin sadece hata ayıklama için değil, navigasyon için sembolleri kullanması için kurmanın bir yolu var mı?

ReSharper / diğer eklentileri kullanmak bir seçenektir.


2
Nuget'in iç projeleri en iyi şekilde yönetmek için kullanıldığını gördük; sonunda proje ve DLL referansları lehine sökük. Bu işi yapabilen birinden haber almak isterim.
Robert Harvey

Ayrıca NuGet paketlerinizde bulunan dll'lere karşılık gelen pdb dosyaları için bir sembol sunucusu ayarladınız mı?
RubberDuck

3
Mevcut işyerimde tam olarak aynı kurulum var. NuGet sunucusu (PDB'leri olmayan DLL dosyaları içerir ) artı semboller sunucusu (DLL'leri, PDB'leri ve kaynakları içerir). Aynı sorun da var (yalnızca hata ayıklama sırasında alınan kaynaklar ve PDB'ler). @RobertHarvey: NuGet Paket Yöneticisi zayıf bir NuGet istemcisidir. Doğrudan ve geçici bağımlılıklar arasında ayrım yapmaz ve aptalca “birleştirme” eylemleri gerektirir. Biz Paket'e geçti ve o zamandan beri hiç bakmadım. Bu paket yönetimi aklı başında ve katlanılabilir, hoş sınır.
Allon Guralnek

2
Sormak zorundayım - bunun mantıksız bir gereklilik olduğunu düşünmüyorum - neden paylaşılan / ortak paketlere bakabilmeniz gerekiyor? En azından bunlar en azından bunlar kara kutularda belgelenmeli ve normdan ziyade istisna durumunda içeriye bakma ihtiyacı olmalıdır. Her durumda kaynak deponuzda mevcuttur ve bu nedenle incelemek için çözümü indirmek tolere edilebilir derecede önemsiz olmalıdır. Bu ya da bunun bazı bölümlerinin tamamen durumun olmayabilir, ama hala sormaya değer olmasının birçok sebebini görebiliyorum.
Murph

4
@Murph - Ben OP değilim, ama deneyim belgelerinde asla istediğim detayı yakalayamıyor. Bu durumu temizlemem gerekiyor mu yoksa callee mi? Bu tam olarak kaçıyor? Bu aşırı yüklenmeler arasındaki fark nedir? Bu varlıklar eşitliği destekliyor mu ve eğer öyleyse neye dayanarak? Bu çağrının yaklaşık karmaşıklığı nedir? Sahip olmaya değer tek ayrıntılı dokümantasyon (temiz) kaynaktır, çünkü her zaman ve yaygın olarak belgeselin hiç düşünmediği, ancak sizin için önemli olan şeyler olacaktır. Daha da kötüsü, karmaşık belgeler kaçınılmaz olarak hatalar içerir ve bayat büyür.
Eamon Nerbonne

Yanıtlar:


1

Çalışması gereken sadece NuGet paketinin kaynak kodunu kontrol etmek ve çözümü Visual Studio'nun ayrı bir örneğinde açmaktır.

Visual Studio, referans verdiklerinizi çalışarak açık örneklerde kod arasında geçiş yapmak için düzgün bir numaraya sahiptir. Hata ayıklarken ilk kez başıma bir vahiy oldu.

Karşılaştığınız temel sorun, bağımlı paketin kullanıma alınmış kodunun, ana projedeki NuGet referansınızla aynı sürümü temsil ettiğinden emin olmaktır. Her zaman paketinizin en son sürümüne göre geliştirme politikası izlerseniz sorun olmaz.

Bu yaklaşımın bir başka yararı da, paketin değişmesi gerekiyorsa, değişikliği orada ve sonra yapabilirsiniz.


2
Bunun nasıl çalıştığına dair bazı ek ayrıntılar verebilir misiniz? Benim için tarif ettiğin gibi çalışmıyor. Pakete PDB'ler eklemeniz mi gerekiyor? Başka hile var mı?
Dyppl

-1

Belki https://github.com/GitTools/GitLink kullanabilirsiniz . Pdb dosyasına depoya işaret eden bir bağlantı ekler, böylece Visual Studio oradan kaynak kodu alır - ve sonra sadece pdb dosyasını nuspec paketinize eklemeniz ve bir kaynak sunucuya ihtiyacınız olmaz.


1
Yine de hata ayıklama dışında çalışıyor mu? Göründüğü gibi görünmüyor.
Dyppl

-1

Bu yüzden mükemmel bir çözüm değil, ancak isteğe bağlı olarak Resharper'ı kullanabileceğinizden bahsediyorsunuz; dotPeek ve resharper ile orijinal kodun sökülmesine gidebilirsiniz, işte kullandığım şey, sizinkiyle benzer bir kurulumumuz var.

Belirttiğiniz Symbol Server'ın bir kombinasyonunu buldum ve sökme işlemine göz atma normalde neler olduğunu anlamak için yeterli.

Umarım yardımcı olur.

Düzenleme: Sorunuzu yeniden okuduktan sonra özellikle bu değil kaynak kodu göz atmak istiyoruz farkındayız. Yine de umarım birisi için faydalı olacaktır.

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.