Solusi Visual Studio berisi dua jenis file pengguna tersembunyi. Salah satunya adalah .suo
file solusi yang merupakan file biner. Yang lainnya adalah .user
file 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?
visual-studio
version-control
Ben Mills
sumber
sumber
Jawaban:
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 menjalankannya, jadi itu akan selalu ditandai oleh SCM sebagai 'diubah'. Saya juga tidak memasukkan, saya dalam proyek menggunakan VS selama 2 tahun dan tidak punya 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 '.
sumber
Anda tidak perlu menambahkan ini - itu berisi pengaturan per pengguna, dan pengembang lain tidak akan menginginkan salinan Anda.
sumber
Yang lain telah menjelaskan mengapa memiliki
*.suo
dan*.user
file di bawah kendali sumber bukan ide yang baik.Saya ingin menyarankan Anda menambahkan pola ini ke
svn:ignore
properti karena 2 alasan:sumber
svn:ignore
properti diatur?.user
, jadi seseorang dapat memilih untuk tidak mengabaikan saja.suo
- atau seseorang dapat mengabaikan.user
, sehingga dibutuhkan keputusan sadar untuk menambahkannya? Jangan berpikir begitu, maksudnyasvn:ignore
adalah menandai hal-hal di mana tidak ada keputusan sadar yang dibutuhkan.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 mengonfigurasi nunit-gui.exe sebagai opsi awal untuk proyek tersebut. Tanpa file .user, setiap anggota tim harus mengkonfigurasinya secara terpisah.
Semoga ini membantu.
sumber
Karena saya menemukan pertanyaan / jawaban ini melalui Google pada tahun 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 membuat ulang mereka). 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 panduan konversi Visual Studio 2010 membuat file database SDF besar?
sumber
Tidak, Anda tidak harus menambahkannya ke kontrol sumber karena - seperti yang Anda katakan - mereka khusus pengguna.
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).
sumber
Tampaknya ini adalah pendapat Microsoft tentang masalah ini:
Menambahkan (dan mengedit) .suo file ke kontrol sumber
sumber
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.
sumber
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.
sumber
Di situs web MSDN , jelas menyatakan itu
Jadi saya katakan cukup aman untuk mengabaikan file-file ini sambil memeriksa hal-hal di kontrol sumber Anda.
sumber
Saya tidak akan. Apa pun yang dapat berubah per "pengguna" biasanya tidak baik dalam kontrol sumber. .suo, .user, direktori obj / bin
sumber
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.
sumber
Anda tidak dapat mengontrol sumber file .user, karena itu khusus untuk pengguna. Ini berisi nama mesin jarak jauh dan hal-hal lain yang bergantung pada pengguna. Ini adalah file terkait vcproj.
File .suo adalah file yang terkait dengan sln dan berisi "solusi opsi pengguna" (proyek startup, posisi windows (apa yang merapat dan di mana, apa yang melayang), 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.
sumber
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 membuatnya kembali sehingga setiap pengembang dapat memiliki pengaturan spesifik yang mereka inginkan.
sumber
.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.
sumber
Tidak.
sumber
Menggunakan Rasional 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.
sumber
only the .sln & .*proj should be registered
- Apakah kamu tidak lupa banyak file di sini?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.
sumber
Tidak, mereka tidak boleh berkomitmen untuk kontrol sumber karena mereka adalah 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
global-ignore
set properti berikut :sumber
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 sangat 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.
sumber
Seperti dijelaskan dalam jawaban lain, keduanya
.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 kontrol sumber sepenuhnya).Namun jika aplikasi Anda memerlukan beberapa pengaturan lingkungan untuk debugging di VS (pengaturan seperti itu biasanya disimpan dalam
.user
file), mungkin berguna untuk menyiapkan file sampel (penamaannya seperti.user.SAMPLE
) dan menambahkannya ke kontrol sumber untuk referensi.Alih-alih path absolut hard-coded 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.
sumber