บทคัดย่อ บทความนี้กล่าวถึงวิธีการใช้เทคโนโลยี Windows Installer เพื่อเผยแพร่โปรแกรม .NET และวิธีใช้โค้ดเนทิฟเพื่อตรวจสอบว่า .NET Framework ได้รับการติดตั้งบนเครื่องเป้าหมายหรือไม่ ถ้าไม่เช่นนั้น .NET Framework จะถูกติดตั้งโดยอัตโนมัติ จากนั้น โปรแกรม .NET ของผู้เขียนเองจะถูกติดตั้ง
-------------------------------------------------- -------------------------------------------------- ----------------------------------
เนื้อหาของบทความนี้ สร้างโปรแกรมติดตั้งของคุณเองเพื่อเผยแพร่ .NET Framework
สรุปวิธีการใช้ Native Installer ของคุณเอง โดยผู้เขียน
-------------------------------------- ---------- --------------------------------------------
เนื้อหาของบทความนี้
1. ใช้ VS.NET เพื่อสร้างตัวติดตั้ง
2. วิธีการปรับใช้ .NET Framework กับเครื่องเป้าหมาย
3. วิธีใช้โค้ดเนทิฟเพื่อสร้าง .NET Framework และโปรแกรมการติดตั้งของคุณเองให้เป็นโปรแกรมการติดตั้งแบบรวม โปรแกรมนี้จะติดตั้ง .NET Framework โดยอัตโนมัติ จากนั้นจึงติดตั้งโปรแกรมของผู้เขียนเองโดยอัตโนมัติ หากไม่มี .NET Framework บนเครื่องเป้าหมาย
-------------------------------------------------- -------------------------------------------------- -----------------------------------
หากต้องการสร้างตัวติดตั้งของคุณเองใน VS.NET เราสามารถสร้าง "โครงการติดตั้งและปรับใช้" "โครงการนี้มีความยืดหยุ่นและสะดวกมากในการสร้างโปรแกรม .NET ของคุณเองให้เป็นไฟล์ Windows Installer ตัวอย่างเช่น เราสามารถปรับแต่งตัวเลือกต่อไปนี้ได้อย่างง่ายดาย:
1. ไม่ว่าจะวางทางลัดบนเดสก์ท็อป
2. ลงทะเบียนประเภทไฟล์ของคุณเองที่สามารถเปิดได้ด้วยโปรแกรมของคุณเองโดยดับเบิลคลิกที่ไฟล์
3. การประมวลผลรีจิสทรี ที่ไซต์ MSDN ต่อไปนี้ เราสามารถรับตัวอย่างการสร้างตัวติดตั้งของเราเองผ่านโครงการติดตั้งและปรับใช้ใน VS.NET:
http://msdn.microsoft.com/library/en-us/vsintro7/html/vbconDeploymentScenarios.asp
--------------------------- -------------------------------------------------- -------------------------------------------------- ---
เผยแพร่ .NET Framework
.NET Framework 1.0 มีไฟล์ exe ที่ใช้ในการปรับใช้ .NET อีกครั้ง: Dotnetfx.exe ประกอบด้วย Common Language Runtime และเนื้อหาสำคัญอื่นๆ เมื่อโปรแกรม .NET ทำงาน
เราสามารถดาวน์โหลดไฟล์ exe ได้จากเว็บไซต์ต่อไปนี้:
http://msdn.microsoft.com/downloads/sample.asp?url=/MSDN-FILES/027/001/829/msdncompositedoc.xml
ในเวลาเดียวกัน เรายังสามารถค้นหาไฟล์นี้ได้จากซีดีหรือดีวีดีการติดตั้ง VS.NET
เราสามารถปรับใช้ .NET Framework กับเครื่องเป้าหมายได้โดยการรัน Dotnetfx.exe ในรูปแบบต่างๆ:
1. ปรับใช้ผ่าน Microsoft Systems Management Server
2. ปรับใช้ผ่าน Active Directory
3. ใช้เครื่องมือของบุคคลที่สาม
สำหรับข้อมูลเฉพาะ เราสามารถอ้างอิงถึงบทความต่อไปนี้:
http://msdn.microsoft.com/library/en-us/dnnetdep/html/redistdeploy.asp
--------------------------- -------------------------------------------------- -------------------------------------------------- ---
สร้างโปรแกรมการติดตั้งแบบเนทีฟของคุณเอง หากเราต้องการเผยแพร่โปรแกรม .NET ของเราไปยังเครื่องเป้าหมาย และเราไม่แน่ใจว่าเครื่องเป้าหมายติดตั้ง .NET Framework ไว้หรือไม่ เราจำเป็นต้องออกแบบโค้ดที่ไม่มีการจัดการ ตรวจสอบว่าเครื่องเป้าหมายติดตั้ง .NET Framework หรือไม่ หากไม่ได้ติดตั้ง ให้เรียกใช้ Dotnetfx.exe เพื่อติดตั้ง .NET Framework แล้วใช้ Windows Installer เพื่อติดตั้งโปรแกรมของคุณเอง
บนหน้าเว็บต่อไปนี้ของ MSDN เราสามารถให้ตัวติดตั้งนำไปใช้ใน C ++ ที่ไม่มีการจัดการและซอร์สโค้ดได้:
http://msdn.microsoft.com/downloads/default.asp?URL=/code/sample.asp?url=/msdn-files/027/001/830/msdncompositedoc.xml
1. ในคลาส CSettings รับเส้นทางไปยังไฟล์การติดตั้ง MSI ของคุณเองและ dotnetfx.exe รวมถึงการตั้งค่าอื่นๆ ของคุณเองโดยการอ่าน "settings.ini" (เช่น เวอร์ชันภาษาของ .NET Framework)
GetCaptionText (เป็นโมฆะ)
GetDialogText (เป็นโมฆะ)
GetErrorCaptionText (เป็นโมฆะ)
GetIniName(เป็นโมฆะ)
GetProductName(เป็นโมฆะ)
ฟังก์ชัน Parse() ใช้ในการแยกวิเคราะห์ไฟล์ settings.ini
2. ในไฟล์ Main.cpp ฟังก์ชันส่วนกลาง FxInstallRequired() กำหนดว่าจะติดตั้ง .NET Framework บนเครื่องเป้าหมายหรือไม่ FxInstallRequired() จะตรวจพบค่าคีย์รีจิสทรีต่อไปนี้ รวมถึงการตั้งค่าเวอร์ชันและภาษาของ dotnetfx.exe
HKLMSOFTWAREMicrosoft.NETFrameworkpolicyv1.0
3. หากคุณต้องการติดตั้ง .NET Framework ให้เรียกใช้คำสั่งต่อไปนี้โดยไม่ต้องแจ้งให้ทราบในฟังก์ชันสากล ExecCmd() เพื่อติดตั้ง dotnetfx.exe:
dotnetfx.exe /q:a /c:"ติดตั้ง /l /q"
4. เรียกใช้คำสั่งต่อไปนี้ในฟังก์ชันสากล ExecCmd() เพื่อติดตั้งไฟล์ MSI ของคุณเอง:
msiexec /i <ไฟล์ MSI ของคุณ> REBOOT=ReallySuppress
--------------------------------------- --------------------------------------------
วิธีการใช้งาน หากเราใช้โค้ดเนทีฟข้างต้น เนื่องจากเป็นโปรแกรมติดตั้งของเราเอง เราสามารถรวมโปรแกรม .NET ของเราเองเข้ากับโปรแกรมได้โดยทำตามขั้นตอนต่อไปนี้:
1. สร้างโปรแกรม .NET ของคุณเองเป็นไฟล์ Windows Installer (.MSI)
2. เปิดไฟล์ "settings.ini" และตั้งค่าพาธของไฟล์ MSI และชื่อไฟล์ของโปรแกรม .NET ของคุณเองในคีย์ "Msi" ในคีย์ "FxInstallerPath" ให้ตั้งค่าพาธเป็น dotnetfx.exe ข้อมูลพารามิเตอร์เฉพาะสามารถรับได้จากบทความต่อไปนี้:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetdep/html/redistdeploy.asp
3. ส่ง "setup.exe", "settings.ini", "dotnetfx.exe" และไฟล์การติดตั้ง MSI ของคุณไปยังเครื่องเป้าหมาย จากนั้นเรียกใช้ "setup.exe" โปรแกรมติดตั้งจะตรวจจับโดยอัตโนมัติว่ามีหรือไม่ .NET Framwork ถ้าไม่ใช่ dotnetfx.exe จะถูกเรียกใช้ก่อน
ด้วยขั้นตอนข้างต้น คุณสามารถปรับใช้โปรแกรม .NET ของคุณกับเครื่องที่ไม่ได้ติดตั้งสภาพแวดล้อม .NET Framwork ได้สำเร็จ
-------------------------------------------------- -------------------------------------------------- ----------------------------------
สรุป ด้วยขั้นตอนข้างต้น คุณสามารถปรับใช้โปรแกรม .NET ของคุณได้สำเร็จโดยไม่ต้องติดตั้ง สภาพแวดล้อมกรอบงาน .NET
-------------------------------------------------- -------------------------------------------------- ----------------------------------
ผู้เขียน จางกวงฮุย
22 ตุลาคม 2545