การรวม 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

  1. ดาวน์โหลดและกำหนดค่า TortoiseSVN:

    • เริ่มต้นด้วยการดาวน์โหลด TortoiseSVN หากคุณยังไม่ได้ทำ
    • ติดตั้งมันบนเครื่องของคุณเพื่อเข้าถึงยูทิลิตี้ SubWCRev ที่รวมอยู่
  2. ตั้งค่าไฟล์ AssemblyInfo.cs ของคุณ:

    • เปิดไฟล์ AssemblyInfo.cs ของคุณ ไฟล์นี้มักจะมีข้อมูลเวอร์ชันของ Assembly
    • เพิ่มส่วนที่เป็นตัวแทนเพื่อให้หมายเลขเวอร์ชันถูกแทนที่โดย SubWCRev

    ตัวอย่าง:

    [assembly: AssemblyVersion("1.0.0.0")]
    [assembly: AssemblyFileVersion("1.0.0.0")]
    [assembly: AssemblyInformationalVersion("1.0.0.0")]
    
  3. สร้างไฟล์แม่แบบ:

    • สร้างไฟล์ข้อความใหม่ (เช่น VersionInfo.txt) และจัดโครงสร้างเพื่อกำหนดว่าวิธีการจะเติมข้อมูลเวอร์ชันอย่างไร
    • ใช้ที่เป็นตัวแทนสำหรับหมายเลข revision

    ตัวอย่างของ VersionInfo.txt:

    [assembly: AssemblyVersion("${VersionNumber}.0")]
    [assembly: AssemblyFileVersion("${VersionNumber}.0")]
    [assembly: AssemblyInformationalVersion("${VersionNumber}.${Revision}")]
    
  4. รัน SubWCRev:

    • ใช้คำสั่ง SubWCRev เพื่อแทนที่ตัวแทนในไฟล์ VersionInfo.txt ของคุณด้วยหมายเลขเวอร์ชันจริงจาก SVN repository ของคุณ
    • สามารถทำได้ทางบรรทัดคำสั่งหรือรวมไว้ในสคริปต์การสร้างของคุณ
  5. สร้างโปรเจ็กต์ของคุณ:

    • เมื่อสร้างโปรเจ็กต์ของคุณ SubWCRev จะสร้าง AssemblyInfo.cs ใหม่ที่มีหมายเลขเวอร์ชันถูกกรอกด้วย Revision ของ SVN ของคุณ

สรุป

โดยการรวม SubWCRev เข้าสู่วิธีการทำงานของโปรเจ็กต์ .NET ของคุณ คุณสามารถมั่นใจได้ว่าสตริงเวอร์ชันของ Assembly จะรวมหมายเลข revision ของ SVN โดยไม่ต้องพึ่งพาซอฟต์แวร์ภายนอกเช่น CC.NET วิธีการนี้ไม่เพียงทำให้การเวอร์ชันของคุณมีข้อมูลมากขึ้น แต่ยังทำให้มันเรียบง่ายและจัดการได้

ตอนนี้ที่คุณรู้วิธีการรวมหมายเลข SVN revision ในการเวอร์ชัน Assembly ของ .NET ของคุณ ลองใช้ในโปรเจ็กต์ถัดไปของคุณ และคุณจะเห็นความชัดเจนที่มันนำมา