สรุป: เปลี่ยนชื่อและย้ายใน VS2019 ด้วย git รักษาประวัติ git ใช้ประโยชน์จาก R # a บิตการอ้างอิงโครงการขึ้นอยู่กับการอัปเดตอัตโนมัติ (สำคัญสำหรับ sln กับหลายโครงการเรามี> 200)
ฉันใช้ขั้นตอนต่อไปนี้เพื่อเปลี่ยนชื่อโครงการ C # ใน Visual Studio 2019 กระบวนการนี้ใช้ R # เพื่อปรับเนมสเปซ ประวัติ git ถูกรักษาไว้โดยการทำ "git mv" (หลีกเลี่ยงการเพิ่ม / ลบประวัติหล่น)
สองขั้นตอน: 1) เปลี่ยนชื่อโครงการในสถานที่และ 2) ย้ายโครงการ
(ใช้เคล็ดลับจากการยกเลิกการโหลด base2โครงการ)
เปลี่ยนชื่อ
- VS | โซลูชัน Explorer | คลิกขวาที่โครงการ เปลี่ยนชื่อ (เช่น Utils.Foo เป็น Foo)
- VS | โซลูชัน Explorer | คลิกขวาที่โครงการ คุณสมบัติ | เปลี่ยนชื่อชุดประกอบชื่อเริ่มต้นและฟิลด์ข้อมูลประกอบ
- ทำ 1 และ 2 สำหรับโครงการทดสอบที่สอดคล้องกัน (เช่น Utils.Foo.Tests)
- VS | โซลูชัน Explorer | คลิกขวาโครงการ (การผลิตและทดสอบ) | Refactor | ปรับ Namespaces
- ไฟล์ XAML ที่ใช้โครงการอาจจำเป็นต้องได้รับการอัปเดต (ด้วยตนเองหรือด้วยการค้นหาทั่วโลกที่เหมาะสมและแทนที่)
- สร้างใหม่ทั้งหมด
- Commit !! (เพื่อกระทำการเปลี่ยนแปลงก่อนการเคลื่อนไหว)
หมายเหตุ: โฟลเดอร์ใน Windows Explorer ยังคงเป็นชื่อเดิมจนถึงจุดนี้ (เช่น Utils.Foo) นี่คือการแก้ไขในขั้นตอนการย้าย
ย้าย
วิธีนี้: 1) เก็บประวัติ git, 2) ใช้ประโยชน์ R # เพื่อปรับเนมสเปซแบบอะตอมมิกและ 3) อัปเดตโครงการที่ต้องพึ่งพา en masse (หลีกเลี่ยงการแก้ไขด้วยตนเองที่น่าเบื่อของไฟล์ sln และ csproj)
ยกเลิกการโหลดโครงการทั้งหมดในโซลูชัน (เพื่อให้การลบโครงการเป้าหมายไม่ทำให้เกิดการเปลี่ยนแปลงในโครงการที่ขึ้นต่อกัน)
VS | เลือกโฟลเดอร์โซลูชันทั้งหมดภายใต้โซลูชัน | คลิกขวายกเลิกการโหลดโครงการ
ย้ายโฟลเดอร์โดยใช้ git (เพื่อรักษาประวัติ)
ก) เปิดพร้อมรับคำสั่งของนักพัฒนาซอฟต์แวร์สำหรับ 2019
b) สถานะ git (เพื่อแสดงให้เห็นว่า“ ไม่มีอะไรจะต้องกระทำทำความสะอาดต้นไม้ทำงาน”)
c) git mv โครงการเช่น git mv "C: \ Code \ foo \ foo \ Utils.Foo" "C: \ Code \ Foo"
d) สถานะ git เพื่อดู / ตรวจสอบการเปลี่ยนแปลง
- ลบโครงการ
VS | โซลูชัน Explorer | เลือกโครงการ | คลิกขวา | ลบออก (เนื่องจากโครงการทั้งหมดถูกยกเลิกการโหลดสิ่งนี้จะไม่ถูกลบการอ้างอิงถึงมันในโครงการที่ขึ้นต่อกัน)
- เพิ่มโครงการอีกครั้ง (ไปยังตำแหน่งใหม่ในแผนผังในโซลูชัน Explorer)
a) VS | โซลูชัน Explorer | เลือกโฟลเดอร์พาเรนต์เป้าหมาย | คลิกขวา | เพิ่ม | โครงการที่มีอยู่
- โหลดซ้ำทุกโครงการ
สิ่งสำคัญ: ยืนยันว่าไฟล์ * .csproj สำหรับโครงการที่อ้างถึงได้รับการอัปเดตแล้ว
(VS | Team Explorer | การเปลี่ยนแปลง | ดับเบิลคลิก csproj ใด ๆ ที่ขึ้นอยู่กับรายการ | ตรวจสอบ - ตรวจสอบการเปลี่ยนเส้นทาง ProjectReference)
- แก้ไขเส้นทางด้วยตนเองในไฟล์ * .csproj ที่ย้ายเดียว
ใช้ Notepad ++ (หรือตัวแก้ไขข้อความอื่น ๆ ) เพื่อแก้ไขเส้นทาง บ่อยครั้งที่สิ่งนี้สามารถทำได้ด้วยการค้นหาและแทนที่ง่าย ๆ (เช่น ../../../../ ถึง ../../)
สิ่งนี้จะอัปเดต ...
a) การอ้างอิง GlobalAssmeblyInfo.cs
b) เส้นทางไปยังแพ็คเกจ
c) พา ธ ไปยังไฟล์ไดอะแกรมการตรวจสอบความน่าเชื่อถือ
d) เส้นทางไปยังเส้นทาง ruleset (เช่น, <CodeAnalysisRuleSet>..\..\..\..\SolutionDependencyValidation\IgnoreWarnings.ruleset</CodeAnalysisRuleSet>
)
- ปิดและเปิดโซลูชันอีกครั้ง (เพื่อให้การอ้างอิงโครงการมีรูปร่างดี)
บันทึกทั้งหมด, ปิดโซลูชัน, ฉันต้องการลบโฟลเดอร์ bin และ obj เพื่อล้างประวัติ, เปิดโซลูชันใหม่
- ตรวจสอบ
a) VS | Team Explorer | การเปลี่ยนแปลง
i) ควรเห็น Staged Changes ที่เปิดเผยไฟล์ที่ถูกย้าย ii) ควรเห็นโปรเจคที่ต้องพึ่งพา (* .csproj) ที่ได้รับการอัพเดตอย่างดีตรวจสอบ csproj ที่ต่างกันและสังเกตว่าเส้นทางได้รับการปรับปรุงอย่างสวยงาม !! (นี่คือเวทย์มนตร์ที่หลีกเลี่ยงการอัพเดตไฟล์ csproj ด้วยตนเองอย่างลำบากโดยใช้โปรแกรมแก้ไขข้อความ)
b) ใน Windows Explorer ตรวจสอบตำแหน่งเก่าว่าว่างเปล่า
c) ทำความสะอาดโซลูชันสร้างโซลูชันใหม่เรียกใช้การทดสอบหน่วยเปิดแอปใน sln
- Commit !!