it-swarm-id.com

Haruskah saya menambahkan file Visual Studio .suo dan .user ke kontrol sumber?

Solusi Visual Studio berisi dua jenis file pengguna tersembunyi. Salah satunya adalah solusi .suo file yang merupakan file biner. Yang lainnya adalah file .user proyek yang merupakan file teks. Data apa yang terkandung dalam file-file ini?

Saya juga bertanya-tanya apakah saya harus menambahkan file-file ini ke kontrol sumber (Subversion dalam kasus saya). Jika saya tidak menambahkan file ini dan pengembang lain memeriksa solusinya, apakah Visual Studio akan secara otomatis membuat file pengguna baru?

783
Ben Mills

File-file ini berisi konfigurasi preferensi pengguna yang secara umum khusus untuk mesin Anda, jadi lebih baik untuk tidak memasukkannya ke dalam SCM. Juga, VS akan mengubahnya hampir setiap kali Anda mengeksekusinya, jadi itu akan selalu ditandai oleh SCM sebagai 'berubah' . Saya juga tidak menyertakan, saya dalam proyek menggunakan VS selama 2 tahun dan memiliki tidak ada masalah melakukan itu. Satu-satunya gangguan kecil adalah bahwa parameter debug (jalur eksekusi, target penempatan, dll.) Disimpan di salah satu file tersebut (tidak tahu yang mana), jadi jika Anda memiliki standar untuk itu, Anda tidak akan bisa ' terbitkan 'itu melalui SCM untuk pengembang lain agar seluruh lingkungan pengembangan' siap digunakan '.

638
Fabio Ceconello

Anda tidak perlu menambahkan ini - itu berisi pengaturan per pengguna, dan pengembang lain tidak akan menginginkan salinan Anda.

131
Steve Cooper

Yang lain telah menjelaskan mengapa memiliki file *.suo dan *.user di bawah kendali sumber bukanlah ide yang baik.

Saya ingin menyarankan Anda menambahkan pola ini ke properti svn:ignore karena 2 alasan:

  1. Jadi pengembang lain tidak akan berakhir Dengan satu pengaturan pengembang.
  2. Jadi ketika Anda melihat status, atau melakukan file , File-file itu tidak akan mengacaukan basis kode dan mengaburkan file baru yang perlu Anda tambahkan.
66
JXG

Kami tidak melakukan file biner (* .suo), tetapi kami melakukan file .user. File .user berisi misalnya opsi mulai untuk men-debug proyek. Anda dapat menemukan opsi mulai di properti proyek di tab "Debug". Kami menggunakan NUnit di beberapa proyek dan mengkonfigurasi nunit-gui.exe sebagai opsi awal untuk proyek tersebut. Tanpa file .user, setiap anggota tim harus mengkonfigurasinya secara terpisah.

Semoga ini membantu.

47
Thomas

Karena saya menemukan pertanyaan/jawaban ini melalui Google pada 2011, saya pikir saya akan mengambil satu detik dan menambahkan tautan untuk file * .SDF yang dibuat oleh Visual Studio 2010 ke daftar file yang mungkin tidak boleh ditambahkan ke kontrol versi ( IDE akan membuatnya kembali). Karena saya tidak yakin bahwa file * .sdf mungkin memiliki penggunaan yang sah di tempat lain, saya hanya mengabaikan file [projectname] .sdf tertentu dari SVN.

Mengapa wizard konversi Visual Studio 2010 membuat file database SDF besar?

25
Stephen

Tidak, Anda tidak harus menambahkannya ke kontrol sumber karena - seperti yang Anda katakan - mereka khusus pengguna.

SUO (Solusi Pilihan Pengguna): Catatan semua opsi yang Anda mungkin kaitkan dengan solusi Anda sehingga setiap kali Anda membukanya, itu termasuk kustomisasi yang Anda telah membuat. 

File .user berisi opsi pengguna untuk proyek (sementara SUO adalah untuk solusinya) dan memperluas nama file proyek (mis. Anything.csproj.user berisi pengaturan pengguna untuk proyek anything.csproj).

22
JRoppert

Tampaknya ini adalah pendapat Microsoft tentang masalah ini:

Menambahkan (dan mengedit) .suo file ke kontrol sumber

Saya tidak tahu mengapa proyek Anda menyimpan DebuggingWorkingDirectory di file suo. Jika itu adalah pengaturan khusus pengguna Anda harus mempertimbangkan menyimpannya dalam nama file * .proj.user. Jika pengaturan itu dapat dibagikan antara semua pengguna yang mengerjakan proyek Anda harus mempertimbangkan menyimpan dalam file proyek itu sendiri.

Jangan pernah berpikir untuk menambahkan file suo ke kontrol sumber! SUO File (opsi pengguna soluton) dimaksudkan untuk berisi .__ khusus pengguna. pengaturan, dan tidak boleh dibagikan di antara pengguna yang bekerja pada yang sama. larutan. Jika Anda akan menambahkan file suo dalam database scc saya tidak tahu apa hal lain di IDE yang akan Anda hancurkan, tetapi dari kontrol sumber sudut pandang Anda akan merusak integrasi proyek web scc, Lan vs Plugin internet digunakan oleh pengguna yang berbeda untuk akses VSS, dan Anda bisa bahkan menyebabkan scc rusak total (jalur database VSS yang disimpan dalam file suo yang mungkin valid untuk Anda mungkin tidak berlaku untuk pengguna lain).

Alin Constantin (MSFT)

17
Scott W

Secara default Microsoft Visual SourceSafe tidak menyertakan file-file ini dalam kontrol sumber karena mereka adalah file pengaturan khusus pengguna. Saya akan mengikuti model itu jika Anda menggunakan SVN sebagai kontrol sumber.

17
cori

Visual Studio akan secara otomatis membuatnya. Saya tidak merekomendasikan menempatkan mereka di kontrol sumber. Ada beberapa kali file SOU pengembang lokal menyebabkan VS berperilaku tidak menentu pada kotak pengembang itu. Menghapus file dan kemudian membiarkan VS menciptakannya selalu memperbaiki masalah. 

11
Bloodhound

Di situs web MSDN , ia dengan jelas menyatakan itu 

File opsi pengguna solusi (.suo) berisi solusi per pengguna pilihan. File ini seharusnya tidak masuk ke kontrol kode sumber.

Jadi saya katakan cukup aman untuk mengabaikan file-file ini sambil memeriksa hal-hal di kontrol sumber Anda. 

10
Farax

Saya tidak akan. Apa pun yang bisa berubah per "pengguna" biasanya tidak baik dalam kontrol sumber. .suo, .user, direktori obj/bin

8
ScaleOvenStove

File-file ini adalah opsi khusus pengguna, yang harus independen dari solusi itu sendiri. Visual Studio akan membuat yang baru seperlunya, sehingga tidak perlu diperiksa ke kontrol sumber. Memang, mungkin akan lebih baik untuk tidak melakukannya karena ini memungkinkan pengembang individu untuk menyesuaikan lingkungan mereka sesuai keinginan mereka.

7
benefactual

Anda tidak dapat mengontrol sumber file .user, karena itu khusus pengguna. Ini berisi nama mesin jarak jauh dan hal-hal lain yang bergantung pada pengguna. Ini adalah file terkait vcproj.

File .suo adalah file terkait sln dan berisi "solusi opsi pengguna" (proyek startup, posisi windows (apa yang merapat dan di mana, apa yang mengambang), dll.)

Ini file biner, dan saya tidak tahu apakah itu berisi sesuatu yang "terkait pengguna".

Di perusahaan kami, kami tidak mengambil file-file itu di bawah kendali sumber.

6
ugasoft

Mereka berisi pengaturan spesifik tentang proyek yang biasanya ditugaskan untuk pengembang tunggal (seperti, misalnya, proyek awal dan halaman awal untuk memulai ketika Anda men-debug aplikasi Anda).

Jadi lebih baik tidak menambahkannya ke kontrol versi, membiarkan VS membuat ulang mereka sehingga setiap pengembang dapat memiliki pengaturan spesifik yang mereka inginkan. 

6
massimogentilini

.user adalah pengaturan pengguna, dan saya pikir .suo adalah solusi pilihan pengguna. Anda tidak ingin file-file ini di bawah kendali sumber; mereka akan dibuat ulang untuk setiap pengguna.

4
Nick

Menggunakan Rational ClearCase jawabannya adalah tidak. Hanya proj .sln &. * Yang harus didaftarkan dalam kontrol kode sumber.

Saya tidak bisa menjawab untuk vendor lain. Jika saya ingat dengan benar, file-file ini adalah opsi khusus "pengguna", lingkungan Anda.

3
titanae

Jangan menambahkan file-file itu ke dalam kontrol versi. File-file ini dihasilkan secara otomatis dengan informasi spesifik stasiun kerja, jika check-in ke kontrol versi yang akan menyebabkan masalah di stasiun kerja lain. 

1
Amila

Seperti yang dijelaskan dalam jawaban lain, .suo dan .user tidak boleh ditambahkan ke kontrol sumber, karena mereka adalah pengguna/mesin-spesifik (BTW .suo untuk versi terbaru VS dipindahkan ke direktori sementara khusus .vs, yang harus dijauhkan dari sumber kontrol sepenuhnya).

Namun jika aplikasi Anda memerlukan beberapa pengaturan lingkungan untuk debugging di VS (pengaturan seperti itu biasanya disimpan dalam file .user), mungkin berguna untuk menyiapkan file sampel (menamakannya seperti .user.SAMPLE) dan menambahkannya ke kontrol sumber untuk referensi.

Alih-alih path absolut hard-kode dalam file tersebut, masuk akal untuk menggunakan yang relatif atau bergantung pada variabel lingkungan, sehingga sampel mungkin cukup umum untuk dengan mudah dapat digunakan kembali oleh orang lain.

1
AntonK

Tidak, mereka tidak boleh berkomitmen untuk kontrol sumber karena mereka pengaturan lokal khusus pengembang/mesin.

GitHub mempertahankan daftar jenis file yang disarankan untuk diabaikan oleh pengguna Visual Studio di https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

Untuk svn, saya memiliki set properti global-ignore berikut:

* .DotSettings.User
* .onetoc2
* .suo
.vs
Web Terkompilasi
thumbs.db
obj
tempat sampah
debug
* .user
* .vshost. *
* .tss
* .dbml.layout

0
Stephen Kennedy

Jika Anda menetapkan dependensi dir yang dapat dieksekusi di ProjectProperties> Debugging> Environment , path disimpan dalam file '.user'. 

Misalkan saya mengatur string ini dalam bidang yang disebutkan di atas: "PATH = C:\xyz\bin" Ini adalah bagaimana ia akan disimpan dalam file '.user': 

<LocalDebuggerEnvironment>PATH=C:\xyz\bin$(LocalDebuggerEnvironment)</LocalDebuggerEnvironment>

Ini banyak membantu kami saat bekerja di OpenCV. Kita dapat menggunakan berbagai versi OpenCV untuk berbagai proyek. Keuntungan lain adalah, sangat mudah untuk mengatur proyek kami pada mesin baru. Kami hanya perlu menyalin dir dependensi yang sesuai. Jadi untuk beberapa proyek, saya lebih suka menambahkan '.user' ke kontrol sumber. 

Meskipun, itu sepenuhnya tergantung pada proyek. Anda dapat menerima panggilan berdasarkan kebutuhan Anda.

0
adheen