ไฟล์ประเภท Visual C ++ ใดที่ควรจะใช้ในการควบคุมเวอร์ชัน


170

Visual Studio \ Visual C ++ ไฟล์ประเภทใดที่ควรถูกกำหนดให้ควบคุมเวอร์ชัน?
ในโครงการของฉันฉันมีไฟล์ประเภทต่อไปนี้:

aps
cpp
exe
filters
h
ico
idb
ipch
lastbuildstate
lib
log
manifest
obj
pch
pdb
rc
rc2
res
sdf
sln
suo
tlog
txt
user
vcxproj

ฉันขอขอบคุณเหตุผลสั้น ๆ สำหรับแต่ละข้อ หากมีข้อโต้แย้งใด ๆ โปรดทราบ ฉันตั้งใจรวมถึงประเภทของไฟล์ที่เล็กน้อยเพื่อความสมบูรณ์

แก้ไข

ในอีกด้านหนึ่งฉันต้องการแพลตฟอร์มอิสระในอนาคต ในอนาคตอันใกล้ฉันต้องการทำงานกับสมาชิกในทีมด้วยการตั้งค่าที่คล้ายกัน ความเข้ากันได้ของโฟลเดอร์ระหว่างการตั้งค่าเป็นตัวเลือกอย่างแน่นอนดังนั้นไฟล์การกำหนดค่าพา ธ อาจเก็บไว้ได้ถ้ามันทำให้เวิร์กโฟลว์ง่ายขึ้น
ฉันขอขอบคุณคำอธิบายว่ามีอะไรเกิดขึ้นอีกครั้ง


23
ว้าวคำถามนี้เป็นเครื่องยืนยันถึงจำนวนไฟล์ชั่วคราวที่เพิ่มขึ้นซึ่ง VS ยืนยันในการสร้างในไดเรกทอรีของโครงการของคุณ
Nik Reiman

@ นิก: พวกเขาไม่ได้อยู่ในไดเรกทอรีของโครงการ
Hans Passant

1
@Hans พวกเขาอาจจะอยู่ที่นั่นหรือภายใต้ไดเรกทอรีย่อยของโครงการ
Nik Reiman

@ Nik: ไม่ใช่ msbuild goo ซึ่งฉันคิดว่าคุณหมายถึงไฟล์ temp ฉันเห็นด้วยมันไม่สวย
Hans Passant

6
ฉันขอเชิญคุณลองใช้สภาพแวดล้อมการพัฒนา ISE ของ Xilinx (สำหรับการเขียนโปรแกรม HDL) และดูว่ามีไฟล์ชั่วคราวกี่ไฟล์ที่พ่นออกมา ไฟล์หลายร้อยไฟล์ที่มีนามสกุลเป็นร้อย :) พูดคุยเกี่ยวกับความยุ่งเหยิง Visual Studio นั้นสะอาดมากเมื่อเปรียบเทียบ
Mark Lakata

คำตอบ:


232

ใช่:

  • cpp: ซอร์สโค้ด
  • ตัวกรอง: ไฟล์โครงการ
  • h: รหัสแหล่งที่มา
  • ico: ทรัพยากร
  • rc: สคริปต์ทรัพยากร
  • rc2: สคริปต์ทรัพยากร
  • sln: ไฟล์โครงการ
  • txt: องค์ประกอบโครงการ
  • vcxproj: ไฟล์โครงการ

No:

  • aps: สถานะตัวแก้ไขทรัพยากรล่าสุด
  • exe: สร้างผลลัพธ์
  • idb: build state
  • ipch: สร้างผู้ช่วย
  • lastbuildstate: build helper
  • lib: สร้างผลลัพธ์ สามารถเป็นบุคคลที่สาม
  • log: สร้างบันทึก
  • รายการ: สร้างผู้ช่วย สามารถเขียนเองได้
  • obj: สร้างผู้ช่วย
  • pch: สร้างผู้ช่วย
  • pdb: build ผลลัพธ์
  • res: สร้างผู้ช่วย
  • sdf: ฐานข้อมูล intellisense
  • suo: ตัวเลือกผู้ใช้โซลูชัน
  • tlog: สร้างบันทึก
  • user: debug settings เก็บรักษาไว้ถ้าเพียงหนึ่ง dev หรือการตั้งค่าการดีบัก

หลายสิ่งเหล่านี้ไม่แน่นอนเพราะทั้งคู่สามารถสร้างอัตโนมัติและดูแลรักษาตัวเอง และมีอีกหลายอย่างที่ไม่ปรากฏในรายการของคุณ ส่วนใหญ่ให้ความสนใจกับสถานที่ตั้งของไฟล์ หากอยู่ในโซลูชันหรือไดเรกทอรีโครงการของคุณมีโอกาสสูงที่คุณต้องการตรวจสอบในไดเรกทอรีย่อย Debug หรือ Release นั้นไม่น่าเป็นไปได้สูง Build + Clean ลบไฟล์เสียงจำนวนมากออก และแน่นอน: เช็คอินเปลี่ยนชื่อไดเรกทอรีโครงการเช็คเอาท์และตรวจสอบว่ามันสร้าง


สิ่งนี้มีประโยชน์มาก โครงการของฉันยังมี. vcb (โครงการนี้ถูกแปลงจากเวอร์ชั่นเก่ากว่า (eVC) ดังนั้นจึงอาจเกี่ยวข้องกับสิ่งนั้น
Robbie Matthews

แล้ว.vcxproj.filtersไฟล์ล่ะ
John Alexiou

1
ยังไม่มีสำหรับ. OPENSDF
Zam

1
@ ja72 filtersอยู่ในรายการ "ใช่" ตั้งแต่แก้ไขครั้งแรกของคำตอบ
Asteroids With Wings

26

จากรายการของคุณฉันจะเลือก:

cpp
filters
h
ico
manifest
rc
rc2
sln
txt
vcxproj

โดยทั่วไปคุณควรเวอร์ชันไฟล์ทั้งหมดที่จำเป็นในการสร้างโครงการ ไฟล์ที่สร้างขึ้นอัตโนมัติไม่ควรทำการเก็บถาวร


@ milan1612 ขอบคุณสำหรับรายการที่กระชับ เมื่อเทียบกับคำตอบของฮันส์แพสแทนท์คุณพูดว่าฉันควรยอมรับไฟล์รายการที่เขาบอกว่าไม่ควร คุณช่วยอธิบายรายละเอียดไฟล์นี้ได้อย่างไรและทำไมคุณถึงคิดว่าฉันควรจะยอมรับมันโดยเฉพาะในสภาพแวดล้อมของทีม (และแพลตฟอร์มข้ามอนาคต) ถ้ามันเกี่ยวข้องกัน?
Jonathan

3
รายการสามารถมีวัตถุประสงค์ที่แตกต่างกัน ฉันได้สร้างสิ่งที่สร้างด้วยตนเองรวมอยู่ในไฟล์ทรัพยากรที่ทำให้ windows ใช้สไตล์กับหน้าต่างของฉัน นอกจากนี้ยังมีรายการที่ช่วยให้คุณปรับใช้ไลบราไลบรารีมาตรฐานควบคู่ไปกับปฏิบัติการของคุณ คิดถึง meta-data เกี่ยวกับใบสมัครของคุณ ...
มิลาน

@ milan1612 - ฉันพบประเภทเพิ่มเติม - suo ควรเพิ่มสิ่งนี้ด้วยหรือไม่ ถ้าเป็นเช่นนั้นคุณสามารถเพิ่มลงในรายการเพื่อความสมบูรณ์ได้หรือไม่?
Jonathan

3
@Jonathan The suo เก็บข้อมูลเฉพาะของผู้พัฒนาที่เกี่ยวข้องกับโซลูชัน (เช่นไฟล์ใดที่เปิดอยู่หรือโฟลเดอร์ใดที่เปิด / ยุบใน Explorer explorer) ดังนั้นจึงไม่ควรอยู่ในการควบคุมเวอร์ชัน
แดเนียลโรส

1
@ milan1612 - จากการป้อนข้อมูลของ Daniel Rose คุณสามารถลบ suo ออกจากรายการของคุณได้หรือไม่?
Jonathan

17

ตามที่ Microsoft แนะนำให้ใช้ชนิดไฟล์ที่ควรรวมอยู่ในการควบคุมเวอร์ชัน:

.mak, .dsp, .c, .rc, .rc2, .ico, .bmp, .txt, .def, .hpj, .bat, .rtf, .odl, .inf, .reg, .cnt, .cpp , .cxx, .h, .hpp, .hxx, .inl, .tpl, .vtp และ. mst ...

ประเภทไฟล์ที่ไม่ควรรวมอยู่ใน:

.pch, .mdp, .ncb, .clw, .obj, .exe, .aps, .cpl, .awk, .exp, .lib, .idb, .opt, .pdb, .map, .res, .ilk , .scc, .bsc, .sbr, .dll และ. tlb ...

แต่ในกรณีที่ใช้เครื่องมือภายนอกในไฟล์ exe หรือไลบรารีภายนอกฉันคิดว่ามันควรจะรวมอยู่ในการควบคุมเวอร์ชัน

ข้อมูล: ไฟล์ Visual C ++ ใดที่จะเพิ่มลงในการควบคุมซอร์สโค้ด

นอกจากนี้ลิงก์นี้จะอธิบายประเภทไฟล์สำหรับโครงการ Visual C ++ใน Visual Studio 2017


7

หากคุณคลิกขวาที่โครงการควรมีตัวเลือก "เพิ่มโซลูชันเพื่อการควบคุมแหล่งที่มา" ในเมนูบริบท

หากคุณใช้สิ่งนี้จะมีการเพิ่มเฉพาะไฟล์ที่จำเป็น ไฟล์สื่อกลางและไฟล์เอาต์พุตทั้งหมดจะถูกละเว้น


4

คำตอบอื่น ๆ นั้นยอดเยี่ยม ฉันแค่คิดว่าฉันมีส่วนร่วมเป็นเครื่องมือเล็ก ๆ ที่มีประโยชน์ ลองดูเทมเพลต. gitignoreของVisual Studioบน GitHub มันเป็นรายการไฟล์ที่ได้รับการดูแลรักษาอย่างดีซึ่งโดยปกติแล้วจะอยู่นอกเหนือการควบคุมเวอร์ชัน

และขณะที่คุณกำลังที่จะให้ทั้งพื้นที่เก็บข้อมูล gitignoreเป็นทรัพยากรที่มีประโยชน์มากสำหรับทุกประเภทของการพัฒนาจากActionScriptเพื่อZend หากคุณไม่ได้ใช้ Git คุณยังสามารถใช้ไฟล์ gitignore เป็นข้อมูลอ้างอิงได้


1

โดยทั่วไปคุณควรเพิ่มไฟล์ทั้งหมดที่ปรากฏใน Solution Explorer ในการควบคุมเวอร์ชัน นอกจากนี้คุณต้องรวมไฟล์. sln (ไฟล์โซลูชัน) และ. vcproj / .vcxproj / .vbproj / .csproj (ไฟล์โครงการ)

โปรดทราบว่าหากคุณมีปลั๊กอินตัวควบคุมแหล่งข้อมูลสำหรับ Visual Studio เช่น TFS หรือ AnkhSvn คุณไม่จำเป็นต้องสนใจเรื่องนี้อย่างชัดเจน Visual Studio รู้ว่าต้องใช้ไฟล์ใดในการควบคุมเวอร์ชันและให้ข้อมูลกับปลั๊กอินควบคุมแหล่งที่มา เฉพาะในกรณีที่คุณใช้เครื่องมือภายนอก (เช่น TortoiseSVN) คุณจำเป็นต้องมีรายการดังกล่าว


0

เฉพาะหัวหอมที่จำเป็นสำหรับการสร้างเป้าหมายของคุณ ฉันคิดว่านี่เป็นเพียง. cpp .h .ico .rc .txt .manifest .rc2

ฉันไม่รู้ว่า sdf, aps, filter, ผู้ใช้คืออะไร, ไม่เห็นพวกเขาในการสร้าง C ++ ของฉัน

เพียงแค่ดูและตรวจสอบว่าพวกเขามีรหัสเขียนโปรแกรมหรือถ้าพวกเขาถูกสร้างขึ้นโดย VS


4
.sln และ. vcxproj เป็นสิ่งจำเป็นอย่างแน่นอน - พวกเขาอธิบายโครงการและการแก้ปัญหา
sharptooth

ใช่ถ้าคุณไม่ดูแลรักษา makefiles ขออภัยส่วนตัวแล้วฉันต่อต้าน VS / MS ซึ่งฉันลืมไปว่ามีผู้ใช้ Visual Studio เป็นเครื่องมือเดียวสำหรับนักพัฒนาของพวกเขา ฉันใช้ดีบักเกอร์เท่านั้น
Lothar

3
ดีไฟล์โครงการ VS เป็น makefiles ด้วย
มิลาน

-2

ตรงกันข้ามกับสิ่งที่ระบุไว้ในคำตอบก่อนหน้านี้ฉันอยากจะชี้ให้เห็นว่ามันเป็นสิ่งสำคัญที่รุ่นควบคุมไฟล์. opt เพื่อให้สามารถติดตามตัวเลือกผู้ใช้ ดูการอ้างอิงด้านล่าง:

https://msdn.microsoft.com/en-us/library/aa278994(v=vs.60).aspx


1
ไฟล์ .opt ควบคุมรูปลักษณ์ของ IDE ไม่ใช่วิธีการรวบรวมโปรแกรมของคุณ ดังนั้นสิ่งที่คุณรู้สึกดีเกี่ยวกับ IDE ไม่จำเป็นต้องดีในมุมมองของผู้อื่น
phuclv
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.