Saya mencoba membuat TFS (2013) mengabaikan packages
folder saya . Saya tidak ingin sumbernya dikendalikan karena saya menggunakan NuGet dan itu hebat!
Saya sudah mencoba penyelubungan (sepertinya tidak berfungsi), saya sudah mencoba menambahkan .tfignore
file - tidak ada yang diabaikan. Mengapa tim TFS tidak menambahkan opsi untuk mengabaikan folder atau file secara permanen seperti yang dilakukan banyak klien Subversion ?!
Jawaban:
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 kurangnyas
setelahtf
). Isinya harus sebagai berikut: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 menyimpanrepositories.config
file alih-alih membiarkan VS memperbaruinya, Anda harus dapat menggunakan ini: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 bernamaNuGet.config
, dan letakkan di folder baru ini 2 . Isinya akan terlihat seperti ini: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.
sumber
Solusi alternatif untuk hal di atas adalah sebagai berikut.
Perlu dicatat bahwa solusi ini perlu diterapkan per ruang kerja TFS. Ini telah bekerja jauh lebih andal bagi saya daripada menggunakan
.tfignore
file.Anda dapat membaca lebih lanjut tentang pendekatan ini di artikel blog Cegah TFS dari menambahkan paket NuGet yang terinstal ke kontrol sumber .
sumber
untuk orang yang melaporkan bahwa opsi .tfignore tidak berfungsi dengan pengaturan nuget.config mungkin menarik - langkah-langkah ini akhirnya berhasil untuk saya:
sumber
Tambahkan file nuget.config di folder .nuget di solusi Anda. Tambahkan berikut ini ke file nuget.config:
DisableSourceControlIntegration adalah apa yang membuat trik untuk Kontrol Versi TFS.
sumber
Anda harus menggunakan ruang kerja lokal untuk
.tfignore
bekerja. The.tfignore
file harus dalam folder yang berisi file atau folder yang ingin Anda abaikan.Jadi jika struktur solusi Anda terlihat seperti ini:
Anda akan meletakkan file .tfignore Anda di \ Project:
Isi .tfignore dalam kasus Anda adalah:
\packages
Berikut beberapa dokumentasi untuk Anda: http://msdn.microsoft.com/library/vstudio/ms245454(v=vs.110).aspx#tfignore
sumber
packages
bukan\packages
karena itu relatif.Anda dapat secara permanen mengatur ini sekali dalam
AppData\Roaming
untuk semua solusi (lama & baru)!Di
%AppData%\NuGet\NuGet.Config
file Anda , tambahkan berikut ini tepat sebelum</configuration>
tag XML ...... Anda dapat menentukan jalur apa pun yang Anda inginkan - yang terpenting adalah meletakkannya DI LUAR ruang kerja TFS Anda!
Sekarang Anda tidak perlu khawatir tentang hal itu lagi. Folder solusi Anda tidak akan berisi paket apa pun lagi; semua solusi akan menggunakan lokasi paket khusus Anda sebagai gantinya.
CATATAN - Ini berfungsi berdasarkan per pengguna.
sumber
Tetapkan solusi Anda untuk memulihkan saat dibangun, folder paket dan file paket akan diperiksa tetapi paket tidak.
sumber
Jika Anda menggunakan Git dengan TFS, Anda perlu menambahkan file ".gitignore". Anda dapat melakukan ini di "proyek tim | Pengaturan | 'tambahkan file diabaikan'". Kemudian buka file dan batalkan komentar pada pernyataan diabaikan bawaan untuk Paket Nuget.
Jika Anda menggunakan TFVC dan Anda telah mengonfigurasi Ruang Kerja Lokal, Anda dapat menggunakan file ".tfignore" yang menghormati format yang identik dengan file Git. Saya pikir Anda perlu "paket /".
sumber
Ini tidak berhasil bagi saya cukup di visual studio online dan VS2013.
Dari komentar lain, tampaknya jarak tempuh Anda mungkin berbeda pada saat ini. Inilah yang saya lakukan:
Periksa semuanya, termasuk semua paket.
Hapus semua paket dalam solusi Anda dan kemudian periksa perubahan ini (ini akan menghapus paket dari TFS)
Buka solusi dan build yang akan menambahkan paket ke proyek tetapi TFS tidak akan mengambilnya.
sumber
Solusi yang berhasil bagi saya adalah membuat .tfignore dan pengaturan berikut di Nuget.Config:
.Tfignore saya berisi baris ini:
[Saya menggunakan Visual Studio 2015 Pembaruan 2]
Ini tidak ideal, dan saat ini dicatat sebagai masalah terbuka di github / nuget:
Buat lebih mudah untuk menghilangkan paket dari TFVC # 493
sumber
Jawaban Terje tidak bekerja sepanjang waktu untuk saya, kadang-kadang akan bekerja untuk sementara waktu, tetapi kemudian akan menunggu banyak "menambahkan" untuk saya lagi.
Satu-satunya cara yang saya temukan untuk menyelesaikan ini secara permanen adalah dengan Jubah folder paket di Workspace saya.
Sebagai contoh:
sumber
Saya memiliki masalah yang sama.
/packages
harus bekerja tetapi tidak untuk saya.packages*.*
berhasil.sumber