İşte anlaşma: NuGet ve TFS'ye paketleri görmezden gelmelerini söylemeliyiz , çünkü NuGet kesinlikle yapmaması gereken kaynak kontrolü ile ilgili şeyler yapmaya çalışıyor (kötü form, Microsoft!). Yani iki şey yapmanız gerekiyor.
İlk olarak, adlı bir dosya eklemek .tfignore
çözüm klasörüne (eksikliğini not s
sonra tf
). İçeriği aşağıdaki gibi olmalıdır:
\packages
Bu TFS'ye paketleri klasörünüzü yoksaymasını söyler. Şimdi, bunun da dosyayı görmezden geleceğini düşünürsünüzrepositories.config
. Ama olmayacak. Neden? Kim bilir, Microsoft'un yolları garip ve gizemli. Aslında, aşağıda özetlediğim NuGet şeylerinin bir parçası olduğunu düşünüyorum, ancak bu gelecekte sabitlenecekse ve repositories.config
VS'nin onu yeniden oluşturmasına izin vermek yerine dosyayı tutmak istiyorsanız , bunu kullanabilmelisiniz:
\packages
!\packages\repositories.config
Tamam, şimdi .tfignore
dosyamız sayesinde TFS paketlerinizi görmezden geliyor. Her şey yolunda değil mi? YANLIŞ , çünkü NuGet kaynak kontrolünüzle uğraşıyor ve paketleri bekleyen değişikliklerinize ekliyor. Şimdi NuGet'e zaten kesmesini söyleyelim.
.nuget
Çözüm klasörünüzün kökünde adlı bir klasör oluşturun . 1 Şimdi adlı bir dosya oluşturun NuGet.config
ve bu yeni klasöre yerleştirin 2 . İçeriği şöyle görünmelidir:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
</configuration>
Ve şimdi paketleriniz kaynak kontrolünün dışında kalmalıdır. Asla kaybolmamak için NuGet.config
ve .tfignore
dosyalarını kaynak denetimine eklemeyi unutmayın .
DÜZENLE: Sorun yaşıyorsanız, paketler klasörünüzü silmek, bu değişikliği kontrol etmek ve ardından yukarıdaki adımları uygulamak isteyebilirsiniz.
AYRICA DÜZENLEME: Bu, Nuget'in daha yeni sürümlerinde olmayacak gibi görünüyor. Yani belki VS / TFS 2017'ye geçerseniz, bu sorun yukarıdaki çemberlerden atlamaksızın giderilecektir.
1 . Kaynak Denetim Gezgini'ni kullanarak klasörü ekleyin; çözümü sağ tıklayın-> Klasör ekle -> nuget
2 . VS 2013 kullanarak bunu anladım, NuGet.config .nuget klasörüne gitmek zorunda bulundu. Çözüm klasörünüzün kökünde zaten bir NuGet.config dosyanız olsa bile (örneğin şirketinizde dahili bir nuget feed'i var). Ancak, yorumlardan bazıları VS 2015'te çözüm kökünde iyi çalıştığını belirtti. Şahsen, git modunda TFS kullanmaya geçtim, bu yüzden test edemiyorum. Ayrıca, özel bir feed'iniz varsa, Nuget.config dosyasında anahtar olarak hem özel feed'e hem de nuget.org'a sahip olduğunuzdan emin olun, aksi takdirde TFS rasgele paketleri geri yükleyemeyeceğine karar verir.