InstallShield - วิธีสร้างตัวติดตั้งอัพเกรด


0

บริบท

ขณะนี้ฉันมีหน้าที่สร้างตัวติดตั้งซอฟต์แวร์รุ่นถัดไปของเรา

ฉันมีไฟล์โครงการทั้งหมดจากรุ่นก่อนหน้า (v16) และฉันกำลังสร้าง v17 อยู่

เรากำลังใช้ InstallShield 2015 Professional Edition (รุ่น 22 | เซอร์วิสแพ็ค 2)

ปัญหา

ฉันมีไฟล์โครงการ MSI พื้นฐานที่นี่ฉันได้เปลี่ยนหมายเลขรุ่นและทำการเปลี่ยนแปลงที่จำเป็นสำหรับซอฟต์แวร์รุ่นถัดไปของเรา - อย่างไรก็ตามเมื่อฉันเรียกใช้ตัวติดตั้งมันบอกว่าฉันได้ติดตั้งแล้ว (แม้ว่าหมายเลขเวอร์ชันจะเป็น แตกต่างกัน)

เมื่อทำการค้นคว้าปัญหานี้มีการโพสต์มากมายเกี่ยวกับเรื่องนี้ แต่ฉันไม่สามารถหาคำตอบที่แตกต่างกันซึ่งควรจะเปลี่ยน "รหัสผลิตภัณฑ์" หรือ "อัปเกรดรหัส" หรือทั้งรหัสหรือรหัสหรือรหัสอื่น ๆ

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก.

คำตอบ:


1

ขึ้นอยู่กับว่าคุณออกแบบซอฟต์แวร์ของคุณอย่างไร คุณสามารถรันหลายรุ่นเคียงข้างกันได้ไหม? ควรมีเพียงหนึ่งเวอร์ชันเท่านั้นที่สามารถทำงานได้?

ชำระเงินบทความ Microsoft บน ProductCodeเช่นเดียวกับUpgradecode

ต้องเปลี่ยนรหัสผลิตภัณฑ์หากมีสิ่งใดสิ่งหนึ่งต่อไปนี้เป็นจริงสำหรับการอัปเดต:

  • การติดตั้งร่วมกันของทั้งผลิตภัณฑ์ดั้งเดิมและที่ได้รับการปรับปรุงบนระบบเดียวกันจะต้องเป็นไปได้
  • ชื่อของไฟล์. msi มีการเปลี่ยนแปลง
  • รหัสส่วนประกอบขององค์ประกอบที่มีอยู่มีการเปลี่ยนแปลง
  • ส่วนประกอบจะถูกลบออกจากคุณสมบัติที่มีอยู่
  • คุณลักษณะที่มีอยู่ถูกสร้างเป็นลูกของคุณลักษณะที่มีอยู่
  • ฟีเจอร์ลูกที่มีอยู่ถูกลบออกจากฟีเจอร์หลัก

สำหรับรหัสการอัพเกรดจะมีการให้ตัวอย่างต่อไปนี้

สองสถานการณ์ต่อไปนี้แสดงให้เห็นถึงการใช้งานของ UpgradeCode

  • ผลิตภัณฑ์ A และผลิตภัณฑ์ B จัดส่งพร้อมกับ ProductLanguage, ProductVersion และ UpgradeCode เดียวกัน ผลิตภัณฑ์ A และผลิตภัณฑ์ B มีรหัสผลิตภัณฑ์ที่แตกต่างกัน เนื่องจากผลิตภัณฑ์ได้รับการกำหนดให้มี UpgradeCode เดียวกันตารางอัพเกรดจึงไม่สามารถเขียนเพื่อแยกความแตกต่างของผลิตภัณฑ์ A รุ่นเก่าจากผลิตภัณฑ์ B รุ่นเก่าในกรณีนี้คุณจะไม่สามารถติดตั้งอัปเกรดผลิตภัณฑ์ A ที่ไม่สนใจผลิตภัณฑ์ B. เนื่องจากสิ่งเหล่านี้เป็นผลิตภัณฑ์ที่แตกต่างกันพวกเขาแต่ละคนจึงควรได้รับ UpgradeCode ที่แตกต่างกัน
  • Product A เวอร์ชันภาษาอังกฤษและฝรั่งเศสจัดส่งพร้อมกับ ProductVersion และ UpgradeCode เดียวกัน ทั้งผลิตภัณฑ์ A เวอร์ชันภาษาอังกฤษและฝรั่งเศสมี ProductLanguage และ ProductCodes ที่แตกต่างกัน แม้ว่าทั้งเวอร์ชันภาษาอังกฤษและภาษาฝรั่งเศสจะใช้ร่วมกันกับ UpgradeCode เดียวกัน แต่ก็เป็นไปได้ที่จะเขียนตารางอัปเกรดเพื่อให้ตรวจพบและอัพเกรดเฉพาะเวอร์ชันภาษาอังกฤษที่เก่ากว่าและเวอร์ชั่นภาษาฝรั่งเศสที่เก่ากว่าจะถูกละเว้น ผลิตภัณฑ์รุ่นภาษาต่าง ๆ สามารถใช้ UpgradeCode เดียวกัน

ดังนั้นเทคนิคการอัพเกรดรหัสไม่มีส่วนเกี่ยวข้องกับการอัพเกรดจริงจากเวอร์ชั่นต่าง ๆ .. ฉันจะต้องเปลี่ยนรหัสผลิตภัณฑ์หรือไม่ แต่แล้วการเปลี่ยนรหัสผลิตภัณฑ์ฉันสามารถถอนการติดตั้งรุ่นก่อนหน้าโดยอัตโนมัติได้หรือไม่ ขอบคุณสำหรับความช่วยเหลือของคุณ :)
กาซา

เป็นบทความที่กล่าวถึงมันขึ้นอยู่กับสิ่งที่คุณกำลังเผชิญ ฉันไม่รู้ว่าซอฟต์แวร์ที่คุณนั่งอยู่ตรงหน้าและเมื่อใดก็ตามที่มีการอัพเดทเล็กน้อยอัพเกรดเล็กแพทช์หรืออัพเกรดใหญ่ นับประสาทุกครั้งที่คุณเปลี่ยน "เลย์เอาต์" ของตัวติดตั้งหรือไม่ คุณสามารถทำได้ แต่คุณต้องดูว่าต้องทำอย่างไร หลังจากคุณรู้รหัสผลิตภัณฑ์และรหัสอัพเกรดของรุ่นก่อนหน้า
เซท
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.