ข้ามไปที่เนื้อหาหลัก

[C# .net Win App] Show Publish Version ที่ Title Bar

               ในกรณีที่เราทำ Windows application ในรูปแบบที่ Publish ออกมาเป็น “Clickone”
ถ้าเราต้องการที่จะให้ Version แสดงที่ Title bar อัตโนมัติ จะทำอย่างไร เรามีวิธีครับ

Using สองตัวนี้ก่อน
Code:
using System.Xml;
using System.Reflection;

ในส่วนของ Public Class นอกสุดให้ประกาศตัวแปรไว้ เป็นชนิด Version ชื่อ myVersion
Code:
Version myVersion;

ในส่วนของ Function  หลักFormLogin (ทดลองทำที่หน้า Login) หลังจาก InitializeComponent();
ก็ให้เราเรียกใช้ Function GetPublishedVersion() ได้ผลลัพธ์ เก็บที่ myVersion
โดยค่าที่ได้จะมาในรูปแบบ ของ
myVersion.Major.ToString();
myVersion.Minor .ToString();
myVersion.Build.ToString();
myVersion.Revision.ToString();
เรียงลำดับ โดยเราจะนำมาใส่ค่า Text ของ Table โดยใช้
this.Text = "Program v" + myVersion.Major.ToString() + "." + myVersion.Minor.ToString() + "." + myVersion.Revision.ToString();

Code:
public FormLogin()
        {
            InitializeComponent();
            myVersion = GetPublishedVersion();
            this.Text = "Program v" + myVersion.Major.ToString() + "." + myVersion.Minor.ToString() + "." + myVersion.Revision.ToString();
        }

ใช้ Function นี้  GetPublishedVersion() Copyไปเลยไม่ต้องแก้ไขอะไร
ก็
Copy ไปวางไว้ที่ Formนั้น หรือทำเป็น Class กลางเพื่อความง่านในการเรียกใช้ใน Form อื่นๆ

Code:
//** return type Version
        public static Version GetPublishedVersion()
        {
            XmlDocument xmlDoc = new XmlDocument();
            Assembly asmCurrent = System.Reflection.Assembly.GetExecutingAssembly();
            string executePath = new Uri(asmCurrent.GetName().CodeBase).LocalPath;

            xmlDoc.Load(executePath + ".manifest");
            string retval = string.Empty;
            if (xmlDoc.HasChildNodes)
            {
                retval = xmlDoc.ChildNodes[1].ChildNodes[0].Attributes.GetNamedItem("version").Value.ToString();
            }
            return new Version(retval);
        }



ลองดูนะครับได้มั้ย
มีคำถามอะไรฝากไว้ได้ครับ
^^

อ้างอิง
โดยคุณ Stakx

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

เชื่อมเหล็กฉุกเฉิน ใช้แค่แบต2ลูกกับสายพ่วงแบต และเหล็กเชื่อม

เอามาฝากครับ จากเว็บท่องไพรนะครับ น่าสนใจดี เผื่อฉุกเฉิน ใครจะคิดบ้างว่า "แบตเตอรี่รถยนต์" จะมีประโยชน์ใช้สอยที่มากกว่าการเป็นแหล่งเก็บพลังงานไฟฟ้าและต้นกำเนิด ไฟฟ้าที่ไว้ใช้ในรถยนต์ วันนี้อยากจะขอนำเสนอความอเนกประสงค์ของแบตเตอรี่อีกรูปแบบหนึ่งในการนำมา ประ ยุกต์ใช้เป็นเครื่องเชื่อมไฟฟ้า เผื่อยามว่างอยากจะซ่อมเชื่อมเครื่องใช้ในภายในบ้าน หรือกับการซ่อมแซมรถก็สามา- รถ ทำได้ด้วยตนเอง 1. พระเอกของฉบับนี้ แบตเตอรี่อย่างน้อย 2 ลูก สำหรับ เป็นแหล่งกำเนิดกระแสไฟ    2. สายพ่วงแบตเตอรี่ อันนี้อาจหาหยิบยืมเพื่อน บ้านมาใช้ก่อนก็ได้ (ใช้เสร็จแล้วอย่าลืมคืน) ควรมีสัก 3 เส้น สำหรับการใช้ทำเครื่องเชื่อมเหล็ก     3. อันนี้เพื่อการจำ ไม่ให้สับสนเกี่ยวกับขั้วของแบตเตอรี่ ตามหลักสากลแล้วสายไฟของขั้วลบ หรือสายกราวนด์ จะใช้สีดำแทนขั้ว ทั้งนี้ เพื่อป้องกันการสับสน ส่วนสายสีอื่นให้ใช้แทนขั้วบวกได้ จะได้ไม่สับสน 4. อันนี้เขาเรียกว่าลวดเชื่อมแบบไฟฟ้า ลักษณะคล้ายธูป ที่เราใช้ไหว้พระ ข้อแตกต่างระหว่างลวดเชื่อม แบบใช้ แก๊สและไฟฟ้าคือ ลวดเชื่อมแบบใช้แก๊สจะเป็นลวดโลหะ ที่ไม่มีการเคลื...

[SQL SERVER] ตัด 0 นำหน้าในตัวแปร Varchar

ตัด 0 นำหน้าในตัวแปร Varchar ผมได้เจอปัญหาว่าบางครั้งการแปลงข้อมูลตัวเลขเช่นเดือน Month = ‘02’ เมื่อต้องการเอามาใช้งานหรือเข้าสูตรต่อ โดยให้ Type Varchar เช่นเดิมนั้นเกิดปัญหา เพราะแหล่งข้อมูลที่เข้ามามีทั้ง ‘04’ และ ‘4’ ไปเจอที่ http://blog.sqlauthority.com/ 2012/11/19/ sql-server-removing-leading-zeros-from-column-in-table/ ของตาพิเนา....ตามนี้ ******************************************************** Code:             SUBSTRING ( ชื่อ Cloumn ,   PATINDEX ( '%[^0 ]%' ,   ชื่อ Cloumn +   ' ' ),   LEN ( ชื่อ Cloumn )) ******************************************************** ตัวอย่าง : USE   tempdb GO -- Create sample table CREATE TABLE   Table1   ( Col1   VARCHAR ( 100 )) INSERT INTO   Table1   ( Col1 ) SELECT   '0001' UNION   ALL SELECT   '000100' UNION   ALL SELECT   '100100' UNION   ALL SELECT   '000 0001' ...

[SQL SERVER] ใช้งาน TRY…CATCH ทำงานคู่กับ Transacton เพื่อยืนยันการทำรายการ

     หลายๆคน อาจรู้จักคำสั่ง Try … Catch ในภาษาอื่นๆมาบ้าง วันนี้ลองมาดู Try … Catch ใน SQL SERVER ( Transact-SQL ) กัน เพราะงานบางครั้งจำเป็นจะต้องมีการตรวจสอบการทำงานของคำสั่งว่าถูกต้องหรือไม่ หรือเมื่อมีความผิดพลาดเกิดขึ้นกับการทำงานของคำสั่ง จะทำอย่างไรต่อไป            บทความนี้จะเสนอแนวทางว่าถ้าเรานำมาช่วยในการตรวจสอบความผิดพลาด ในกรณีการทำงานกับ ข้อมูล Transaction นั้น สามารถทำได้อย่างไร >>> Red Code = คำสั่งเพิ่มเติมที่ใช้ดึงค่าการทำงานของ TRANSACTION ขณะนั้น Blue Bold Code = คำสั่ง Try … Catch ในบทความนี้ Light Green Code = Comment หรือคำอธิบายคำสั่ง – ขั้นตอนนั้นๆ เพื่อความเข้าใจมากขึ้น ********************************************************************** ตัวอย่างคำสั่ง ::: -- สร้างตารางข้อมูลชั่วคราวขึ้นมาเพื่อใช้ทำการทดสอบ Create table #TTB_Test ( ProductID varchar ( 20 )); insert into #TTB_Test values ( '777' ); insert into #TTB_Test Values ( '888' ); ...