Visual Studio .suo va .user fayllarini manba boshqaruviga qo'shishim kerakmi?

Visual Studio yechimlari ikki turdagi yashirin foydalanuvchi fayllarini o'z ichiga oladi. Ulardan biri ikkilik fayl bo'lgan yechim .suo faylidir. Ikkinchisi matn fayli bo'lgan loyiha .user fayli. Ushbu fayllar aynan qanday ma'lumotlarni o'z ichiga oladi?

Men ushbu fayllarni manba boshqaruviga qo'shishim kerakmi yoki yo'qmi, deb o'ylayman (mening holimda Subversion). Agar men ushbu fayllarni qo'shmasam va boshqa ishlab chiquvchi yechimni tekshirsa, Visual Studio avtomatik ravishda yangi foydalanuvchi fayllarini yaratadimi?


person Ben Mills    schedule 16.09.2008    source manba
comment
.suo fayllari avtomatik ravishda qayta yaratiladi. Agar biror narsa buzilgan bo'lsa, sozlamalaringizni standart holatga "yangilash" ning ajoyib usuli.   -  person CodingBarfield    schedule 27.09.2010
comment
Subversion va Visual Studio loyihalari uchun eng yaxshi amaliyotlar - bu aniq mavzu bo'yicha umumiyroq savol. Shuningdek, uning qabul qilingan javobi rasmiy MSDN hujjatlariga havolani o'z ichiga oladi, unda VS yechimlarining qaysi fayllari/kataloglari batafsil tavsiflanadi. loyihalar manbalarni boshqarish tizimlariga qo'shilishi kerak va qaysi qismlarga e'tibor bermaslik kerak.   -  person Attila Csipak    schedule 07.04.2014
comment
*.suo uchun bu yerga qarang: msdn.microsoft.com/en-us /library/bb165909.aspx   -  person smwikipedia    schedule 05.03.2015
comment
comment
Muayyan faylni versiya boshqaruviga kiritish kerakligini aniqlashning juda oson yo'li mavjud. Faylni o'chiring. Ilovangiz hali ham kutilganidek tuziladi va ishlaydimi? Agar shunday bo'lsa, fayl kiritilmasligi kerak.   -  person JoelFan    schedule 27.10.2020


Javoblar (22)


Ushbu fayllarda umuman kompyuteringizga xos bo'lgan foydalanuvchi imtiyozlari konfiguratsiyasi mavjud, shuning uchun uni SCMga qo'ymaslik yaxshiroqdir. Bundan tashqari, VS uni deyarli har safar bajarganingizda o'zgartiradi, shuning uchun u har doim SCM tomonidan "o'zgartirilgan" deb belgilanadi. Men ham qo'shmayman, men 2 yil davomida VS dan foydalanayotgan loyihadaman va buni amalga oshirishda hech qanday muammo yo'q edi. Bitta kichik bezovtalik shundaki, disk raskadrovka parametrlari (bajarish yo'li, tarqatish maqsadi va boshqalar) ushbu fayllardan birida saqlanadi (qaysi birini bilmayman), shuning uchun sizda ular uchun standart bo'lsa, siz buni qila olmaysiz. Boshqa ishlab chiquvchilar uchun butun rivojlanish muhiti "foydalanishga tayyor" bo'lishi uchun uni SCM orqali nashr eting.

person Fabio Ceconello    schedule 16.09.2008
comment
Ehtiyot bo'ling, suo fayli yechim ichida loyiha yuklangan/tushirilganligi haqida ma'lumotni saqlaydi. - person Kugel; 13.10.2011
comment
Menimcha, u disk raskadrovka ma'lumotlarini .user faylida saqlaydi (hech bo'lmaganda SQL Server Data Tools uchun). Bundan tashqari, disk raskadrovka ilovasidagi sozlamalarni o'zgartirganingizda, u har doim ham .userga darhol davom etavermaydi (yechimni yopish ishlayotganga o'xshaydi, biroz zerikarli ... yoki .sqlproj faylida saqlangan boshqa sozlamalarni o'zgartirish). - person jamiebarrow; 03.08.2012
comment
Siz .user va .csproj fayllarini istalgan matn muharririda ochishingiz mumkin. Men hozirgina .userdan tegishli disk raskadrovka sozlamalarini .csproj-ga nusxa ko‘chirishni, so‘ng .user faylini o‘chirishni sinab ko‘rdim. Nosozliklarni tuzatish .csproj faylidagi yangi joylashuvidan toʻgʻri sozlamalarni mamnuniyat bilan oʻqishda davom etdi. Bu .user faylini kiritmasdan disk raskadrovka sozlamalarini bajarish usulini ta'minlashi kerak. Ularni to'g'ri konfiguratsiyaga qo'yganingizga ishonch hosil qiling (disk raskadrovka, chiqarish va hk). Mening mashinamda ishlaydi! =) - person Chris Nielsen; 14.08.2012
comment
@ChrisNielsen qo'lda kiritilgan xususiyatlar Visual Studio'da GUIda paydo bo'ladimi? Menda disk raskadrovka ishlayotganga o'xshaydi, lekin bu sirli ko'rinadi, chunki maydon qiymatlari Visual Studio'da ko'rsatilmaydi. - person JamEnergy; 14.01.2021

Bularni qo‘shishning hojati yo‘q – ular har bir foydalanuvchi uchun sozlamalarni o‘z ichiga oladi va boshqa ishlab chiquvchilar sizning nusxangizni olishni istamaydi.

person Steve Cooper    schedule 16.09.2008
comment
Agar siz o'zingiz bir nechta turli xil mashinalarda ishlayotgan bo'lsangiz, ularni qo'shishga arziydimi? - person thepocketwade; 25.08.2009
comment
Men buni qilmayman, chunki u kutilmagan tizim farqlari uchun mo'rt bo'lishi mumkin; Masalan, agar siz ishda x64 va uyda x86 da ishlasangiz, u c:\program files (x86) va c:\program fayllarini bo'g'ib qo'yishi mumkin. Bilmayman, lekin men buni xavf ostiga qo'ymayman. - person Steve Cooper; 01.02.2011
comment
Ular foydalanuvchiga xos ma'lumotlarni o'z ichiga olgan bo'lsa-da, lekin (loyihaga qo'shish) opsiyasi orqali yangi qo'shilgan fayllar haqidagi ma'lumotlar, menimcha, .csproj faylida ham mavjud, bu boshqa foydalanuvchilardan barcha yangi qo'shilgan loyiha resurslarini qo'lda qo'shishni talab qiladi. Agar kimdir vaqtinchalik echimni bilsa, iltimos, bu erda eslatib o'ting. - person zeppelin; 04.02.2015

Boshqalar nima uchun *.suo va *.user fayllarni manba nazorati ostida bo'lish yaxshi fikr emasligini tushuntirdilar.

Men 2 sababga ko'ra ushbu naqshlarni svn:ignore xususiyatiga qo'shishni taklif qilmoqchiman:

  1. Shunday qilib, boshqa ishlab chiquvchilar bitta dasturchining sozlamalari bilan to'xtamaydilar.
  2. Shunday qilib, siz statusni ko'rganingizda yoki fayllarni topshirganingizda, bu fayllar kod bazasini bezovta qilmaydi va siz qo'shishingiz kerak bo'lgan yangi fayllarni yashirmaydi.
person JXG    schedule 17.09.2008
comment
svn:ignore xususiyati qayerda va qanday o'rnatiladi? - person Peter Mortensen; 21.04.2015
comment
@PeterMortensen, ushbu savolni ko'ring: stackoverflow.com/questions/86049/ - person JXG; 26.04.2015
comment
Lekin .user ni qo'shish uchun bir holat mavjud (ushbu javobga qarang), shuning uchun faqat .suo ni e'tiborsiz qoldirmaslikni tanlash mumkin - yoki .user ga e'tibor bermaslik mumkinmi, shuning uchun ularni qo'shish uchun ongli ravishda qaror qabul qilish kerakmi? Shunday deb o'ylamang, svn:ignore nuqtasi ongli ravishda qaror qabul qilish kerak bo'lmagan narsalarni belgilashdir. - person PJTraill; 27.05.2015

Biz ikkilik faylni (*.suo) topshirmaymiz, lekin biz .user faylini topshiramiz. .user faylida, masalan, loyihani tuzatish uchun boshlash variantlari mavjud. Boshlash variantlarini loyihaning xususiyatlarida "Debug" yorlig'ida topishingiz mumkin. Biz ba'zi loyihalarda NUnit-dan foydalandik va nunit-gui.exe faylini loyiha uchun boshlang'ich variant sifatida sozladik. .user fayli bo'lmasa, har bir jamoa a'zosi uni alohida sozlashi kerak edi.

Umid qilamanki, bu yordam beradi.

person Thomas    schedule 16.09.2008
comment
Men ham shunday bo'lishi kerak deb o'ylay boshladim - foydalanuvchi faylini jamoadagi ishlab chiquvchilar bir xil disk raskadrovka sozlamalaridan foydalanishi uchun topshiring. Agar ular uni o'z mashinasida o'zgartirsalar, standart usul manba boshqaruvidagi versiya bo'lsa ham yaxshi. - person jamiebarrow; 03.08.2012
comment
Boshqalar buni qilishni taklif qilishdi, lekin men qanday xavf tug'dirishi mumkinligini bilmayman. Ehtimol, kamroq aniq sozlamalarga ega repo fayli foydalanuvchining (yaxshiroq) mahalliy nusxasini yo'q qilishi mumkinmi? (Bizning jamoamiz Mercurial, BTW dan foydalanmoqda.) - person Jon Coombs; 23.09.2013
comment
Microsoft .user faylini manba boshqaruviga qo'shishni maslahat beradi. - person DavidRR; 20.11.2015
comment
Nosozliklarni tuzatish sozlamalarini .csproj ga ko‘chirishingiz mumkin, qarang: bu fikr - person Tim Sparkles; 30.01.2018
comment
standart foydalanuvchi sozlamalarining boshqa nomdagi nusxasini qo'shishingiz mumkin. - person QuantumDebris; 20.07.2021

Men bu savol/javobni 2011-yilda Google orqali topganimdan so‘ng, bir oz vaqt ajratib, Visual Studio 2010 tomonidan yaratilgan *.SDF fayllari uchun havolani versiya boshqaruviga qo‘shilmasligi mumkin bo‘lgan fayllar ro‘yxatiga qo‘shishni o‘yladim ( IDE ularni qayta yaratadi). Men *.sdf fayli boshqa joyda qonuniy foydalanishi mumkinligiga ishonchim komil boʻlmagani uchun, men faqat SVN dan maxsus [loyiha nomi].sdf fayliga eʼtibor bermadim.

Nima uchun Visual Studio konversiya ustasi 2010 katta hajmli SDF ma'lumotlar bazasi faylini yaratadi?

person Stephen    schedule 04.07.2011
comment
SDF fayli SQL Server Compact Edition ma'lumotlar bazasi bo'lishi mumkin. - person Carl G; 18.09.2012

Yo'q, siz ularni manba boshqaruviga qo'shmasligingiz kerak, chunki siz aytganingizdek, ular foydalanuvchiga xosdir.

SUO (Yechim foydalanuvchisi opsiyalari): Yechimingiz bilan bogʻlanishi mumkin boʻlgan barcha variantlarni yozib oladi, shunda siz uni har safar ochganingizda, u siz qilgan sozlashlarni oʻz ichiga oladi.

.user fayli loyiha uchun foydalanuvchi parametrlarini oʻz ichiga oladi (SUO yechim uchun boʻlsa) va loyiha fayl nomini kengaytiradi (masalan, any.csproj.user hech narsa.csproj loyihasi uchun foydalanuvchi sozlamalarini oʻz ichiga oladi).

person JRoppert    schedule 16.09.2008

Bu Microsoft kompaniyasining bu boradagi fikriga o'xshaydi:

Qo'shish (va tahrirlash) ) .suo fayllarni manba boshqaruviga

Nima uchun loyihangiz DebuggingWorkingDirectory ni suo faylida saqlaganini bilmayman. Agar bu foydalanuvchi uchun maxsus sozlama bo'lsa, uni *.proj.user fayl nomida saqlashni ko'rib chiqishingiz kerak. Agar ushbu sozlamani loyihada ishlaydigan barcha foydalanuvchilar o'rtasida almashish mumkin bo'lsa, uni loyiha faylida saqlashni o'ylab ko'rishingiz kerak.

Suo faylini manba boshqaruviga qo‘shishni xayolingizga ham keltirmang! SUO (soluton foydalanuvchi variantlari) fayli foydalanuvchi uchun maxsus sozlamalarni o‘z ichiga olishi kerak va u bir xil yechim ustida ishlayotgan foydalanuvchilar orasida baham ko‘rilmasligi kerak. . Agar siz SCC ma'lumotlar bazasiga suo faylini qo'shmoqchi bo'lsangiz, IDE-da yana qanday narsalarni buzishingizni bilmayman, lekin manba nazorati nuqtai nazaridan siz veb-loyihalarni scc integratsiyasini buzasiz, Lan vs Internet plaginidan foydalaniladi. VSS-ga kirish uchun turli foydalanuvchilar tomonidan va hatto scc-ning to'liq buzilishiga olib kelishi mumkin (siz uchun amal qilishi mumkin bo'lgan suo faylida saqlangan VSS ma'lumotlar bazasi yo'li boshqa foydalanuvchi uchun yaroqsiz bo'lishi mumkin).

Alin Konstantin (MSFT)

person Scott W    schedule 16.09.2008
comment
Shuningdek, MSDN dan: Yechim foydalanuvchi parametrlari (.Suo) fayli. Birinchi jumla Microsoftning niyatini juda aniq ko'rsatib turibdi: Echim foydalanuvchi variantlari (.suo) faylida har bir foydalanuvchi uchun yechim variantlari mavjud. Bu fayl manba kodini boshqarish tizimiga kiritilmasligi kerak. - person DavidRR; 20.11.2015

Sukut bo'yicha Microsoft Visual SourceSafe bu fayllarni manba boshqaruviga o'z ichiga olmaydi, chunki ular foydalanuvchi uchun maxsus sozlamalar fayllari. Agar siz SVN dan manba boshqaruvi sifatida foydalansangiz, men ushbu modelga amal qilaman.

person cori    schedule 16.09.2008

Visual Studio ularni avtomatik ravishda yaratadi. Men ularni manba nazoratiga qo'yishni tavsiya etmayman. Mahalliy dasturchining SOU fayli VS ning ushbu ishlab chiquvchilar qutisida noto'g'ri ishlashiga sabab bo'lgan ko'p marta bo'lgan. Faylni o'chirish va keyin VS ga uni qayta yaratishga ruxsat berish har doim muammolarni hal qildi.

person Mike Becatti    schedule 16.09.2008
comment
Menda .sou fayli qolgan edi va u paketlarni qayta yuklashda muammo tug'dirdi. .sou faylini o'chirish muammoni hal qildi. Rahmat. - person mercedes; 27.09.2017

MSDN veb-saytida u aniq ko'rsatilgan.

Yechim foydalanuvchi variantlari (.suo) faylida har bir foydalanuvchi uchun yechim variantlari mavjud. Ushbu fayl manba kodini boshqarish tizimiga kiritilmasligi kerak.

Demak, manba boshqaruvidagi narsalarni tekshirishda ushbu fayllarni e'tiborsiz qoldirish juda xavfsiz deb aytaman.

person Farax    schedule 19.05.2016

qilmasdim. Har bir "foydalanuvchi" uchun o'zgarishi mumkin bo'lgan har qanday narsa odatda manba nazoratida yaxshi emas. .suo, .user, obj/bin kataloglari

person ScaleOvenStove    schedule 16.09.2008

No.

Men shunchaki qisqa javobni xohlardim, ammo yo'q edi.

person Pablo Carrasco Hernández    schedule 06.08.2019

Ushbu fayllar foydalanuvchi uchun maxsus variantlar bo'lib, ular yechimning o'zidan mustaqil bo'lishi kerak. Visual Studio kerak bo'lganda yangilarini yaratadi, shuning uchun ularni manba boshqaruviga tekshirish shart emas. Darhaqiqat, buni qilmaslik yaxshiroqdir, chunki bu individual ishlab chiquvchilarga o'z muhitini o'zlari xohlagancha sozlash imkonini beradi.

person benefactual    schedule 16.09.2008

Siz .user fayllarini manbadan boshqara olmaysiz, chunki bu foydalanuvchiga xos. Unda masofaviy mashina nomi va boshqa foydalanuvchiga bog'liq narsalar mavjud. Bu vcproj bilan bog'liq fayl.

.suo fayli sln bilan bogʻliq fayl boʻlib, u “foydalanuvchi yechimlari”ni oʻz ichiga oladi (boshlash loyihasi(lar), Windows joylashuvi (nima oʻrnatilgan va qayerda, nima suzuvchi) va h.k.)

Bu ikkilik fayl va unda "foydalanuvchi bilan bog'liq" narsa bor yoki yo'qligini bilmayman.

Bizning kompaniyamizda biz ushbu fayllarni manba nazorati ostida olmaymiz.

person ugasoft    schedule 16.09.2008

Ular odatda bitta ishlab chiquvchiga tayinlangan loyihaga oid maxsus sozlamalarni o'z ichiga oladi (masalan, boshlang'ich loyiha va dasturni disk raskadrovka qilganda boshlanadigan boshlang'ich sahifa).

Shuning uchun ularni versiya boshqaruviga qo'shmaslik yaxshiroqdir, VS ularni qayta yaratishni qoldirib, har bir ishlab chiquvchi o'zi xohlagan maxsus sozlamalarga ega bo'lishi mumkin.

person massimogentilini    schedule 16.09.2008

.user - bu foydalanuvchi sozlamalari va menimcha, .suo - bu foydalanuvchi variantlari. Siz ushbu fayllarni manba nazorati ostida bo'lishini xohlamaysiz; ular har bir foydalanuvchi uchun qayta yaratiladi.

person Nick    schedule 16.09.2008

Rational ClearCase dan foydalanish javob yo'q. Manba kodini boshqarishda faqat .sln & .*proj ro'yxatga olinishi kerak.

Boshqa sotuvchilar uchun javob bera olmayman. Agar to'g'ri eslasam, bu fayllar "foydalanuvchi" uchun maxsus variantlar, sizning muhitingiz.

person titanae    schedule 16.09.2008
comment
only the .sln & .*proj should be registered - bu yerda ko'p fayllarni unutmadingizmi? - person Wolf; 14.12.2016
comment
@Wolf aniq bo'lganidan tashqari - person Polluks; 21.07.2017

Ushbu fayllardan hech birini versiya boshqaruviga qo'shmang. Bu fayllar, agar versiya boshqaruviga ro'yxatdan o'tgan bo'lsa, ish stantsiyasiga tegishli ma'lumotlar bilan avtomatik tarzda yaratiladi va bu boshqa ish stantsiyalarida muammo tug'diradi.

person Amila    schedule 13.11.2018

Yo'q, ular ishlab chiquvchi/mashinaga xos mahalliy sozlamalar bo'lgani uchun manba nazoratiga berilmasliklari kerak.

GitHub Visual Studio foydalanuvchilariga e'tibor bermaslik uchun tavsiya etilgan fayl turlari ro'yxatini https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

Svn uchun menda quyidagi global-ignore xossalar to'plami mavjud:

*.DotSettings.User
*.onetoc2
*.suo
.vs
PrecompiledWeb
thumbs.db
obj
bin
disk raskadrovka
*.user
*.vshost.*
*.tss
*.dbml.layout

person Stephen Kennedy    schedule 16.02.2019

Boshqalar, yo'q, siz buni versiya boshqaruvida xohlamasligingizni tushuntirdi. Siz versiyani boshqarish tizimini faylga e'tibor bermaslik uchun sozlashingiz kerak (masalan, .gitignore fayl orqali).

Buning sababini tushunish uchun ushbu faylda aslida nima borligini ko'rishga yordam beradi. Men .suo fayli mazmunini ko'rish imkonini beruvchi buyruq qatori vositasini yozdim.

Uni mashinangizga o'rnating:

dotnet tool install -g suo

Unda ikkita kichik buyruqlar mavjud: keys va view.

suo keys <path-to-suo-file>

Bu fayldagi har bir qiymat uchun kalitni o'chirib tashlaydi. Masalan (qisqartirilgan):

nuget
ProjInfoEx
BookmarkState
DebuggerWatches
HiddenSlnFolders
ObjMgrContentsV8
UnloadedProjects
ClassViewContents
OutliningStateDir
ProjExplorerState
TaskListShortcuts
XmlPackageOptions
BackgroundLoadData
DebuggerExceptions
DebuggerFindSource
DebuggerFindSymbol
ILSpy-234190A6EE66
MRU Solution Files
UnloadedProjectsEx
ApplicationInsights
DebuggerBreakpoints
OutliningStateV1674
...

Ko'rib turganingizdek, ko'plab IDE funktsiyalari o'z holatini saqlash uchun ushbu fayldan foydalanadi.

Berilgan kalit qiymatini ko'rish uchun view buyrug'idan foydalaning. Masalan:

$ suo view nuget --format=utf8 .suo
nuget

?{"WindowSettings":{"project:MyProject":{"SourceRepository":"nuget.org","ShowPreviewWindow":false,"ShowDeprecatedFrameworkWindow":true,"RemoveDependencies":false,"ForceRemove":false,"IncludePrerelease":false,"SelectedFilter":"UpdatesAvailable","DependencyBehavior":"Lowest","FileConflictAction":"PromptUser","OptionsExpanded":false,"SortPropertyName":"ProjectName","SortDirection":"Ascending"}}}

Asbob haqida batafsil ma'lumotni bu yerda: https://github.com/drewnoakes/suo

person Drew Noakes    schedule 04.02.2021

Agar siz ProjectProperties>Debugging>Environmentda bajariladigan dir bog'liqliklarini o'rnatgan bo'lsangiz, yo'llar ".user" fayllarida saqlanadi.

Men ushbu qatorni yuqorida aytib o'tilgan maydonga o'rnatdim deylik: "PATH=C:\xyz\bin" U ".user" faylida shunday saqlanadi:

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

Bu bizga OpenCV da ishlaganimizda ko'p yordam berdi. Turli loyihalar uchun OpenCV ning turli versiyalaridan foydalanishimiz mumkin. Yana bir afzalligi shundaki, bizning loyihalarimizni yangi mashinada o'rnatish juda oson edi. Biz faqat tegishli bog'liqlik dirslarini nusxalashimiz kerak edi. Shunday qilib, ba'zi loyihalar uchun men manba boshqaruviga ".user" ni qo'shishni afzal ko'raman.

Garchi bu butunlay loyihalarga bog'liq bo'lsa ham. Ehtiyojlaringizga qarab qo'ng'iroqni qabul qilishingiz mumkin.

person adheen    schedule 26.07.2018
comment
Ramziy havolalar ham bu maqsadda juda yaxshi ishlaydi. - person sɐunıɔןɐqɐp; 26.07.2018

Boshqa javoblarda tushuntirilganidek, .suo va .user ham manba boshqaruviga qo'shilmasligi kerak, chunki ular foydalanuvchi/mashinaga xosdir (VS ning eng yangi versiyalari uchun BTW .suo .vs nomli vaqtinchalik katalogga ko'chirildi, ular manbadan tashqarida saqlanishi kerak. to'liq nazorat qilish).

Ammo agar ilovangiz VS da disk raskadrovka uchun muhitni sozlashni talab qilsa (bunday sozlamalar odatda .user faylda saqlanadi), namuna faylini (uni .user.SAMPLE deb nomlash) tayyorlash va uni qo'shish qulay bo'lishi mumkin. havolalar uchun manba nazorati.

Bunday faylda qattiq kodlangan mutlaq yo'l o'rniga nisbiylardan foydalanish yoki atrof-muhit o'zgaruvchilariga tayanish mantiqan to'g'ri keladi, shuning uchun namuna boshqalar tomonidan osongina qayta ishlatilishi mumkin bo'lgan darajada umumiy bo'lishi mumkin.

person AntonK    schedule 29.04.2019