อะไรคือความแตกต่างระหว่างไฟล์. msi และ setup.exe


193

ฉันค้นหามาก แต่ทุกคำตอบก็เดาได้ ช่วยฉันค้นหาคำตอบที่แน่นอน




ฉันต้องการติดตั้งโปรแกรมที่มาพร้อมกับโปรแกรมติดตั้ง EXE และ MSI ฉันติดตั้งครั้งแรกจาก MSI ซึ่งติดตั้งเฉพาะไฟล์โปรแกรมเท่านั้น (ไม่ใช่ข้อกำหนดเบื้องต้นหรือสิ่งอ้างอิงใด ๆ และไม่ได้สร้างไอคอนเมนูเริ่ม) เมื่อฉันเปิดตัวโปรแกรมด้วยตนเองมันล้มเหลวที่จะบอกว่า DLLs บางอย่างหายไป การติดตั้งจาก EXE ก็ติดตั้งอย่างอื่นเช่นกันและผลิตภัณฑ์ก็ทำงานได้ดี ฉันจะบอกว่าถ้าผู้ผลิตซอฟต์แวร์ให้ทั้งตัวเลือก EXE และ MSI สำหรับการติดตั้งให้ใช้ EXE
— James L.

คำตอบ:


232

MSI เป็นฐานข้อมูล Windows Installer Windows Installer (บริการที่ติดตั้งกับ Windows) ใช้เพื่อติดตั้งซอฟต์แวร์ในระบบของคุณ (เช่นไฟล์คัดลอกตั้งค่ารีจิสตรี ฯลฯ )

setup.exe อาจเป็น bootstrapper หรือตัวติดตั้งที่ไม่ใช่ msi โปรแกรมติดตั้งที่ไม่ใช่ msi จะดึงทรัพยากรการติดตั้งออกจากตัวมันเองและจัดการการติดตั้งโดยตรง bootstrapper จะมี MSI แทนไฟล์แต่ละไฟล์ ในกรณีนี้ setup.exe จะเรียก Windows Installer เพื่อติดตั้ง MSI

เหตุผลบางอย่างที่คุณอาจต้องการใช้เป็นsetup.exe :

  • Windows Installer อนุญาตให้ติดตั้ง MSI ได้ครั้งละหนึ่งเครื่องเท่านั้น ซึ่งหมายความว่าเป็นการยากที่จะให้ MSI ติดตั้ง MSIs อื่น ๆ (เช่นการพึ่งพาเช่น. NET Framework หรือ C ++ runtime) เนื่องจาก setup.exe ไม่ใช่ MSI จึงสามารถใช้เพื่อติดตั้ง MSIs หลายตัวตามลำดับ
  • คุณอาจต้องการการควบคุมที่แม่นยำยิ่งขึ้นเกี่ยวกับวิธีจัดการการติดตั้ง MSI มีกฎเฉพาะเจาะจงมากเกี่ยวกับวิธีจัดการการติดตั้งรวมถึงการติดตั้งการอัพเกรดและการถอนการติดตั้ง setup.exe ให้การควบคุมกระบวนการกำหนดซอฟต์แวร์อย่างสมบูรณ์ นี้ควรจะทำถ้าคุณจริงๆต้องควบคุมเป็นพิเศษเพราะมันเป็นจำนวนมากของการทำงานและมันอาจเป็นเรื่องยุ่งยากที่จะได้รับมันขวา

7
ฉันกำลังจะพิมพ์สิ่งนี้ - นี่อาจเป็นสิ่งที่เขากำลังมองหา
— Mongoose

1
จากประสบการณ์ของฉันในการสร้างตัวติดตั้ง MSI นั้นทำงานได้มากมายเมื่อเทียบกับการสร้างตัวติดตั้งแบบ exe สิ่งนี้ขึ้นอยู่กับเครื่องมือที่คุณใช้ในการสร้างตัวติดตั้งตั้งแต่แรก น่าเสียดายที่เครื่องมือติดตั้ง MSI ทั้งหมดที่ฉันเคยเห็นนั้นเป็นเครื่องมือ GUI เชิงพาณิชย์หรือเครื่องมือที่ใช้ WiX ที่ซับซ้อน ไม่ตรงกับความต้องการของฉันเป็นพิเศษ (เช่นสร้างตัวติดตั้งโดยอัตโนมัติด้วยสคริปต์)
— craftworkgames

ดังนั้นฉันจึงยังสงสัยว่าทำไม MSI ถึงมีอยู่จริง ปัญหาอะไรที่พยายามแก้ไขเมื่อ exe ดูเหมือนว่าทำงานได้ดี?
— The Muffin Man

14

ไฟล์. msi เป็นไฟล์ตัวติดตั้ง windows ที่ไม่มีรันไทม์ของตัวติดตั้ง windows, setup.exe อาจเป็น programm ที่สามารถเรียกใช้งานได้ (อาจเป็นไฟล์ที่ติดตั้งเนื้อหาบนคอมพิวเตอร์ของคุณ)


9

MSIเป็นไฟล์ติดตั้งซึ่งจะติดตั้งโปรแกรมของคุณในระบบปฏิบัติการ

Setup.exeเป็นแอปพลิเคชั่น (ไฟล์ปฏิบัติการ) ซึ่งมีไฟล์ msi เป็นหนึ่งในทรัพยากร การเรียกใช้งาน Setup.exe จะเป็นการเรียกใช้งาน msi (ตัวติดตั้ง) ซึ่งจะเขียนแอปพลิเคชันของคุณไปยังระบบ

แก้ไข (ตามที่แนะนำในความคิดเห็น):ไฟล์ปฏิบัติการที่ติดตั้งไม่จำเป็นต้องมีทรัพยากร MSI ภายใน


ไฟล์ปฏิบัติการที่ติดตั้งไม่จำเป็นต้องมีทรัพยากรของ MSI ภายใน
— jkmartindale

-10

MSI นั้นเป็นโปรแกรมติดตั้งจาก Microsoft ที่สร้างไว้ใน windows มันเชื่อมโยงส่วนประกอบกับคุณสมบัติและมีข้อมูลการควบคุมการติดตั้ง ไม่จำเป็นว่าไฟล์นี้มีไฟล์ที่ผู้ใช้ต้องการจริงเช่นโปรแกรมแอปพลิเคชันที่ผู้ใช้คาดหวัง MSI สามารถมีไฟล์ setup.exe อีกอันที่ภายในนั้น MSI ห่อหุ้มซึ่งมีไฟล์ที่ผู้ใช้ต้องการ

หวังว่านี้จะล้างคุณสงสัย


13
นี่คือความสับสนและโดยทั่วไปไม่ถูกต้อง - ในMSIไฟล์นั้นมักจะไม่ห่อsetup.exeไฟล์ แต่ในทางกลับกัน
— Flak DiNenno

"MSI สามารถมีไฟล์ setup.exe อีกอันที่อยู่ภายในซึ่ง wraps ของ MSI" ไม่ถูกต้อง! ตรงกันข้ามการสนทนาเป็นจริง:. exe มี. msi อยู่ภายใน
— ONE
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.