การรวม SVN Revision ในการเวอร์ชัน Assembly ของ .NET ของคุณ
ในโลกของการพัฒนาซอฟต์แวร์ การรักษาการควบคุมเวอร์ชันถือเป็นสิ่งสำคัญ สำหรับผู้ที่ใช้ Subversion (SVN) เป็นระบบควบคุมเวอร์ชัน การสามารถรวมหมายเลข revision ของ SVN repository ในสตริงเวอร์ชันของ Assembly ใน .NET จะช่วยเพิ่มความสะดวกในการตรวจสอบและการแก้ไขข้อผิดพลาด หากคุณเคยถามตัวเองว่า “มีวิธีใดบ้างที่จะทำเช่นนี้โดยไม่ต้องใช้เครื่องมือของคนอื่น เช่น CC.NET?” คำตอบคือใช่
ปัญหา: การเวอร์ชันโดยไม่ต้องใช้เครื่องมือเพิ่มเติม
คุณอาจเคยพบกับสถานการณ์ที่คุณต้องการให้สตริงเวอร์ชันของคุณไม่เพียงแค่สะท้อนหมายเลขเวอร์ชันหลักและรอง แต่ยังรวมถึงหมายเลข revision ของ SVN ด้วย รูปแบบเวอร์ชันเป้าหมายที่คุณอาจพิจารณาดูเหมือนเช่นนี้:
Major.Minor.SVNRev
อย่างไรก็ตาม การหาวิธีที่ตรงไปตรงมาในการทำเช่นนี้ใน .NET โดยไม่ต้องใช้ซอฟต์แวร์เพิ่มเติมอาจเป็นความท้าทาย โดยเฉพาะหากคุณเคยทำอะไรที่คล้ายกันในภาษา C หรือ C++ ใน C/C++ คุณสามารถทำสิ่งนี้ได้โดยใช้สคริปต์การสร้างที่อัพเดตไฟล์ header ด้วยหมายเลขเวอร์ชัน
ทางออก: การใช้ SubWCRev
วิธีที่มีประสิทธิภาพในการรวมหมายเลข revision ของ SVN ไปยังการเวอร์ชัน Assembly ของ .NET คือการใช้ SubWCRev ซึ่งเป็นยูทิลิตี้ที่รวมอยู่กับ TortoiseSVN SubWCRev จะอ่านคีย์เวิร์ด SVN จากไฟล์ของคุณและแทนที่ด้วยข้อมูล revision ที่เหมาะสมในระหว่างกระบวนการสร้าง
คู่มือขั้นตอนในการใช้งาน SubWCRev
-
ดาวน์โหลดและกำหนดค่า TortoiseSVN:
- เริ่มต้นด้วยการดาวน์โหลด TortoiseSVN หากคุณยังไม่ได้ทำ
- ติดตั้งมันบนเครื่องของคุณเพื่อเข้าถึงยูทิลิตี้ SubWCRev ที่รวมอยู่
-
ตั้งค่าไฟล์ AssemblyInfo.cs ของคุณ:
- เปิดไฟล์
AssemblyInfo.cs
ของคุณ ไฟล์นี้มักจะมีข้อมูลเวอร์ชันของ Assembly - เพิ่มส่วนที่เป็นตัวแทนเพื่อให้หมายเลขเวอร์ชันถูกแทนที่โดย
SubWCRev
ตัวอย่าง:
[assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0.0")]
- เปิดไฟล์
-
สร้างไฟล์แม่แบบ:
- สร้างไฟล์ข้อความใหม่ (เช่น
VersionInfo.txt
) และจัดโครงสร้างเพื่อกำหนดว่าวิธีการจะเติมข้อมูลเวอร์ชันอย่างไร - ใช้ที่เป็นตัวแทนสำหรับหมายเลข revision
ตัวอย่างของ
VersionInfo.txt
:[assembly: AssemblyVersion("${VersionNumber}.0")] [assembly: AssemblyFileVersion("${VersionNumber}.0")] [assembly: AssemblyInformationalVersion("${VersionNumber}.${Revision}")]
- สร้างไฟล์ข้อความใหม่ (เช่น
-
รัน SubWCRev:
- ใช้คำสั่ง SubWCRev เพื่อแทนที่ตัวแทนในไฟล์
VersionInfo.txt
ของคุณด้วยหมายเลขเวอร์ชันจริงจาก SVN repository ของคุณ - สามารถทำได้ทางบรรทัดคำสั่งหรือรวมไว้ในสคริปต์การสร้างของคุณ
- ใช้คำสั่ง SubWCRev เพื่อแทนที่ตัวแทนในไฟล์
-
สร้างโปรเจ็กต์ของคุณ:
- เมื่อสร้างโปรเจ็กต์ของคุณ SubWCRev จะสร้าง
AssemblyInfo.cs
ใหม่ที่มีหมายเลขเวอร์ชันถูกกรอกด้วย Revision ของ SVN ของคุณ
- เมื่อสร้างโปรเจ็กต์ของคุณ SubWCRev จะสร้าง
สรุป
โดยการรวม SubWCRev เข้าสู่วิธีการทำงานของโปรเจ็กต์ .NET ของคุณ คุณสามารถมั่นใจได้ว่าสตริงเวอร์ชันของ Assembly จะรวมหมายเลข revision ของ SVN โดยไม่ต้องพึ่งพาซอฟต์แวร์ภายนอกเช่น CC.NET วิธีการนี้ไม่เพียงทำให้การเวอร์ชันของคุณมีข้อมูลมากขึ้น แต่ยังทำให้มันเรียบง่ายและจัดการได้
ตอนนี้ที่คุณรู้วิธีการรวมหมายเลข SVN revision
ในการเวอร์ชัน Assembly ของ .NET ของคุณ ลองใช้ในโปรเจ็กต์ถัดไปของคุณ และคุณจะเห็นความชัดเจนที่มันนำมา