อะไรคือความแตกต่างระหว่างไฟล์. 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.