ในกรณีที่เราทำ 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
ก็ให้เราเรียกใช้ Function GetPublishedVersion() ได้ผลลัพธ์ เก็บที่ myVersion
โดยค่าที่ได้จะมาในรูปแบบ ของ
myVersion.Major.ToString();
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();
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 อื่นๆ
ก็ 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
ความคิดเห็น
แสดงความคิดเห็น