อะไรคือความแตกต่างระหว่างบิลด์โซลูชั่น, บิวด์โซลูชั่นและคลีนโซลูชั่นใน Visual Studio?
เวลาที่เหมาะสมในการใช้แต่ละรายการเหล่านี้คือเมื่อใด
อะไรคือความแตกต่างระหว่างบิลด์โซลูชั่น, บิวด์โซลูชั่นและคลีนโซลูชั่นใน Visual Studio?
เวลาที่เหมาะสมในการใช้แต่ละรายการเหล่านี้คือเมื่อใด
คำตอบ:
(ลิงก์ไปยังสวิตช์บรรทัดคำสั่งdevenv.exeแต่ทำเช่นเดียวกับรายการเมนู)
.gitignore
ไฟล์ที่ดี แต่ตามคำตอบแล้ว Clean ไม่ได้ทำงานที่ละเอียดรอบคอบเป็นพิเศษในประสบการณ์ของฉัน
สร้างโซลูชัน: รวบรวมไฟล์รหัส (DLL และ EXE) ซึ่งมีการเปลี่ยนแปลง
สร้างใหม่: ลบไฟล์ที่รวบรวมทั้งหมดและรวบรวมอีกครั้งโดยไม่คำนึงว่ารหัสมีการเปลี่ยนแปลงหรือไม่
วิธีแก้ไขปัญหาทั้งหมด: ลบไฟล์ที่รวบรวมทั้งหมด (ไฟล์ DLL และ EXE)
คุณสามารถดูวิดีโอ YouTube นี้ ( Visual Studio Build vs. Rebuild vs. Clean (คำถามสัมภาษณ์ C # พร้อมคำตอบ) ) ที่ฉันได้แสดงให้เห็นถึงความแตกต่างและด้านล่างคือการแสดงด้วยภาพซึ่งจะช่วยให้คุณวิเคราะห์ในรายละเอียดมากขึ้น
ความแตกต่างระหว่าง Rebuild vs. (Clean + Build) เนื่องจากดูเหมือนว่าจะมีความสับสนเกี่ยวกับเรื่องนี้เช่นกัน:
ความแตกต่างคือวิธีการสร้างและลำดับการทำความสะอาดที่เกิดขึ้นสำหรับทุกโครงการ สมมติว่าโซลูชันของคุณมีสองโครงการ "proj1" และ "proj2" หากคุณสร้างใหม่จะใช้เวลา“ proj1” ให้ล้าง (ลบ) ไฟล์ที่รวบรวมสำหรับ“ proj1” และสร้าง หลังจากนั้นจะใช้โปรเจ็กต์ที่สอง“ proj2” ทำความสะอาดไฟล์ที่คอมไพล์แล้วสำหรับ“ proj2” และคอมไพล์“ proj2”
แต่ถ้าคุณทำ "สะอาด" และสร้าง "มันจะลบไฟล์ที่คอมไพล์แล้วทั้งหมดสำหรับ" proj1 "และ" proj2 "จากนั้นจะสร้าง" proj1 "ก่อนตามด้วย" proj2 "
นำมาจากลิงค์นี้ :
Build หมายถึงการคอมไพล์และลิงก์เฉพาะไฟล์ต้นฉบับที่มีการเปลี่ยนแปลงนับตั้งแต่บิลด์ครั้งสุดท้ายขณะที่ Rebuild หมายถึงการคอมไพล์และลิงก์ไฟล์ต้นฉบับทั้งหมดโดยไม่คำนึงว่าจะมีการเปลี่ยนแปลงหรือไม่ Build เป็นสิ่งปกติที่ต้องทำและเร็วกว่า บางครั้งเวอร์ชันขององค์ประกอบเป้าหมายของโครงการสามารถหลุดจากการซิงค์และการสร้างใหม่เป็นสิ่งที่จำเป็นเพื่อทำให้การสร้างสำเร็จ ในทางปฏิบัติคุณไม่จำเป็นต้องทำความสะอาด
สร้างโซลูชัน - สร้างชุดประกอบใด ๆ ที่มีการเปลี่ยนแปลงไฟล์ หากชุดประกอบไม่มีการเปลี่ยนแปลงชุดประกอบนั้นจะไม่ถูกสร้างใหม่ จะไม่ลบไฟล์กลางใด ๆ
ใช้กันมากที่สุด
สร้างโซลูชันใหม่ - สร้างแอสเซมบลีทั้งหมดโดยไม่คำนึงถึงการเปลี่ยนแปลง แต่ทิ้งไฟล์ระดับกลางไว้
ใช้เมื่อคุณสังเกตเห็นว่า Visual Studio ไม่ได้รวมการเปลี่ยนแปลงของคุณในแอสเซมบลีล่าสุด บางครั้ง Visual Studio ทำผิดพลาด
Clean Solution - ลบไฟล์ระดับกลางทั้งหมด
ใช้เมื่อทุกอย่างล้มเหลวและคุณต้องทำความสะอาดทุกอย่างและเริ่มต้นใหม่
ฉันคิดว่าการสร้างใหม่เป็นการแสดงบน Clean ก่อนตามด้วย Build บางทีฉันผิด ... ความเห็น?
file reference
แทนproject reference
คำสั่ง build build ของโครงการที่ไม่รู้จักว่าจะต้องสร้างโครงการก่อนหน้าอื่นและชุดประกอบไม่มีอยู่ในที่ที่ควรมีในระหว่าง สร้าง?
สร้างโซลูชัน - สร้างชุดประกอบใด ๆ ที่มีการเปลี่ยนแปลงไฟล์ หากชุดประกอบไม่มีการเปลี่ยนแปลงชุดประกอบนั้นจะไม่ถูกสร้างใหม่ จะไม่ลบไฟล์กลางใด ๆ
สร้างโซลูชันใหม่จะทำความสะอาดแล้วสร้างโซลูชันตั้งแต่เริ่มต้นโดยไม่สนใจสิ่งที่เคยทำมาก่อน
Clean Solutionจะลบไฟล์ที่คอมไพล์ทั้งหมด (เช่น EXE's และ DLL) จากไดเร็กทอรี bin / obj
โซลูชันบิลด์จะสร้างโครงการใด ๆ ในโซลูชันที่เปลี่ยนไป สร้างใหม่สร้างโครงการทั้งหมดไม่ว่าอะไรก็ตามโซลูชันที่สะอาดจะลบไฟล์ชั่วคราวทั้งหมดเพื่อให้แน่ใจว่าการสร้างถัดไปเสร็จสมบูรณ์
สร้างโซลูชัน - สร้างโซลูชันจะสร้างแอปพลิเคชันของคุณด้วยการสร้างจำนวนโครงการที่มีการเปลี่ยนแปลงไฟล์ใด ๆ และมันไม่ได้ล้างไฟล์ไบนารีใด ๆ ที่มีอยู่และเพียงแทนที่แอสเซมบลีที่อัพเดตในโฟลเดอร์ bin หรือ obj
โซลูชันการสร้างใหม่ - โซลูชันการสร้างใหม่จะสร้างแอปพลิเคชันทั้งหมดของคุณด้วยการสร้างโครงการทั้งหมดที่มีอยู่ในโซลูชันของคุณพร้อมการทำความสะอาด ก่อนสร้างจะล้างไฟล์ไบนารีทั้งหมดออกจากโฟลเดอร์ bin และ obj
Clean Solution - โซลูชันสะอาดเป็นเพียงการล้างไฟล์ไบนารีทั้งหมดจากโฟลเดอร์ bin และ obj
สร้างโซลูชัน
สิ่งนี้จะดำเนินการสร้างที่เพิ่มขึ้น กล่าวอีกนัยหนึ่งมันจะสร้างไฟล์รหัสที่มีการเปลี่ยนแปลงเท่านั้น หากพวกเขาไม่ได้เปลี่ยนไฟล์เหล่านั้นจะไม่ได้สัมผัส
สร้างโซลูชันใหม่
วิธีนี้จะลบไฟล์ที่รวบรวมในปัจจุบันทั้งหมด (เช่น exe และ DLL) และจะสร้างทุกอย่างตั้งแต่เริ่มต้นโดยไม่คำนึงว่ามีการเปลี่ยนแปลงรหัสในไฟล์หรือไม่
เมนูโซลูชั่นที่สะอาด
เมนูนี้จะลบไฟล์ที่คอมไพล์แล้วทั้งหมด (เช่น EXE's และ DLL) จากไดเร็กทอรี bin / obj
สร้างใหม่ = ล้าง + สร้าง
สิ่งสำคัญอย่างหนึ่งที่ฉันคิดว่าผู้คนกำลังละทิ้งคือ Build และ Clean เป็นงานที่ดำเนินการตามความรู้ของ Visual Studio เกี่ยวกับโครงการ / โซลูชันของคุณ ฉันเห็นว่ามีหลายคนบ่นว่า Clean ไม่ทำงานหรือออกจากไฟล์ที่เหลือหรือไม่น่าเชื่อถือ แต่จริงๆแล้วเหตุผลที่คุณบอกว่าไม่น่าเชื่อถือนั้นทำให้เชื่อถือได้มากกว่า
ล้างจะลบเฉพาะไฟล์ (และล้าง) และ / หรือไดเรกทอรีที่ Visual Studio หรือคอมไพเลอร์เองสร้างขึ้นจริง หากคุณคัดลอกไฟล์หรือโครงสร้างไฟล์ / โฟลเดอร์ของคุณเองถูกสร้างขึ้นจากเครื่องมือหรือแหล่งข้อมูลภายนอก Visual Studio จะไม่ "รู้ว่ามีอยู่" ดังนั้นจึงไม่ควรแตะต้องมัน
คุณสามารถจินตนาการได้หรือไม่ว่าการดำเนินการ Clean โดยทั่วไปใช้ "del *. *"? นี่อาจเป็นความหายนะ
บิลด์ทำการคอมไพล์ในโครงการที่เปลี่ยนแปลงหรือจำเป็น
การสร้างใหม่ดำเนินการรวบรวมโดยไม่คำนึงถึงการเปลี่ยนแปลงหรือสิ่งที่จำเป็น
ล้างจะลบไฟล์ / โฟลเดอร์ที่สร้างไว้ในอดีต แต่ทิ้งสิ่งที่ไม่ได้ทำไว้ก่อน
ฉันหวังว่าสิ่งนี้จะช่วยอธิบายเล็กน้อยและช่วย
ผมมีทางออกว่างเปล่า AA BuildRebuildClean
และห้องสมุดชั้นสามModels
, ,Repository
Notification
ฉันใช้Models
และRepository
ในNotification
ไลบรารีของชั้นเรียน
แล้ว:
Models
โครงการห้องสมุดดังนั้น BUILD solution ในภาพหน้าจอด้านล่างอ้างถึงการประทับเวลาของ DLL, EXE ได้รับการปรับปรุงModels
และNotification
ไลบรารีBuildRebuildClean
คลิกขวาที่ชื่อการแก้ปัญหา สิ่งที่ทำคือลบแอสเซมบลีทั้งหมด EXE และไฟล์ที่อ้างอิงเพื่อรวบรวมอีกครั้งทั้งหมดที่ฉันรู้คือการทำความสะอาดไม่ได้ทำในสิ่งที่ "ทำให้สะอาด" เคยทำ - ถ้าฉันทำความสะอาดวิธีการแก้ปัญหาฉันคาดหวังว่ามันจะลบไฟล์ / โฟลเดอร์ obj และ bin เช่นที่มันสร้างเหมือนเป็นเช็คเอาต์สดของแหล่งที่มา จากประสบการณ์ของฉันแม้ว่าฉันมักจะพบเวลาที่ Clean and Build หรือ Rebuild ยังคงสร้างข้อผิดพลาดแปลก ๆ ในแหล่งที่ทราบว่ารวบรวมและสิ่งที่จำเป็นคือการลบโฟลเดอร์ bin / obj ด้วยตนเองจากนั้นจะสร้าง
สร้างโซลูชันสร้างเฉพาะโครงการที่มีการเปลี่ยนแปลงในโซลูชันและไม่มีผลต่อแอสเซมบลีที่ไม่เปลี่ยนแปลง
ทำความสะอาด ReBuild ก่อนประกอบทั้งหมดจากการแก้ปัญหาแล้วสร้างโซลูชั่นทั้งหมดโดยไม่คำนึงถึงการเปลี่ยนแปลงที่ทำ
ทำความสะอาดเพียงล้างสารละลาย
สิ่งนี้เกี่ยวข้องกับตัวเลือก "สร้างโซลูชัน" เท่านั้น
ฉันเบื่อหน่ายโดยสิ้นเชิงกับ Visual Studio ที่ไม่สามารถแก้ปัญหาได้อย่างแท้จริงและเขียนเครื่องมือเล็ก ๆ นี้ที่จะทำเพื่อคุณ
ปิดโซลูชันของคุณใน VS ก่อนแล้วลากโฟลเดอร์จาก Windows Explorer ไปยังแอพนี้หรือไปที่ไอคอน ขึ้นอยู่กับการตั้งค่าที่ด้านล่างของหน้าต่างมันสามารถลบสิ่งเพิ่มเติมที่จะช่วยถ้าคุณพยายามอัปโหลดโซลูชันของคุณไปที่ GitHub ด้วยตนเองหรือแชร์กับคนอื่น:
โดยสรุปแล้วมันจะวางโฟลเดอร์ "Debug" ทั้งหมด Intellisense และแคชอื่น ๆ ที่สามารถสร้างใหม่โดย VS ลงใน Recycle Bin ให้คุณ