Inilah kesepakatannya: Kita harus memberi tahu NuGet dan TFS untuk mengabaikan paket-paket itu, karena NuGet sedang mencoba melakukan hal-hal yang berhubungan dengan sumber-kontrol yang seharusnya tidak dilakukan (bentuk buruk, Microsoft!). Jadi, Anda harus melakukan dua hal.
Pertama, tambahkan file yang bernama .tfignore
ke folder solusi (perhatikan kurangnya s
setelah tf
). Isinya harus sebagai berikut:
\packages
Itu memberitahu TFS untuk mengabaikan folder paket Anda. Sekarang, Anda akan berpikir bahwa ini juga akan mengabaikan repositories.config
file. Tapi itu tidak akan terjadi. Mengapa? Siapa tahu, cara-cara Microsoft aneh dan misterius. Sebenarnya, saya pikir itu adalah bagian dari hal-hal NuGet yang saya uraikan di bawah, tetapi jika hal itu diperbaiki di masa mendatang dan Anda ingin menyimpan repositories.config
file alih-alih membiarkan VS memperbaruinya, Anda harus dapat menggunakan ini:
\packages
!\packages\repositories.config
OK, jadi sekarang berkat .tfignore
file kami , TFS mengabaikan paket Anda. Semuanya baik-baik saja, bukan? SALAH , karena NuGet sedang mondar-mandir dengan kontrol sumber Anda dan menambahkan paket ke perubahan yang tertunda. Jadi sekarang mari kita katakan pada NuGet untuk menghentikannya.
Buat folder bernama .nuget
di root folder solusi Anda. 1 Sekarang, buat file bernama NuGet.config
, dan letakkan di folder baru ini 2 . Isinya akan terlihat seperti ini:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
</configuration>
Dan sekarang paket Anda harus di luar kendali sumber. Ingatlah untuk menambahkan NuGet.config
dan .tfignore
file ke kontrol sumber sehingga mereka tidak pernah hilang.
EDIT: Jika Anda mengalami masalah, Anda mungkin ingin menghapus folder paket Anda, periksa perubahan itu, dan kemudian ikuti langkah-langkah di atas.
EDIT JUGA: Sepertinya ini tidak akan terjadi dengan versi Nuget yang lebih baru. Jadi mungkin jika Anda beralih ke VS / TFS 2017 masalah ini akan hilang tanpa melompat melalui lingkaran di atas.
1 . Tambahkan folder menggunakan Source Control Explorer; klik kanan solusi-> Tambah folder ->. nuget
2 . Ketika saya menemukan ini menggunakan VS 2013, saya menemukan NuGet.config harus masuk ke folder .nuget. Bahkan jika Anda sudah memiliki file NuGet.config di root folder solusi Anda (karena, katakanlah, perusahaan Anda memiliki umpan nuget internal). Namun, beberapa di komentar telah menunjukkan bahwa ia berfungsi dengan baik di root solusi di VS 2015. Secara pribadi, saya beralih menggunakan TFS dalam mode git, jadi saya tidak bisa menguji. Selain itu, jika Anda memiliki feed kustom, pastikan Anda memiliki feed kustom dan nuget.org sebagai kunci dalam file Nuget.config, atau kadang-kadang TFS akan secara acak memutuskan tidak dapat mengembalikan paket.