2009-11-24 6 views
126

Tôi đã tìm kiếm rất nhiều, nhưng tất cả đều là câu trả lời được đoán. Giúp tôi tìm câu trả lời chính xác.Sự khác biệt cụ thể giữa tệp .msi và setup.exe là gì?

+5

xem http://stackoverflow.com/questions/902841/why-do-so-many-programs-have-both-a-setup-exe-and-a-setup-msi – rds

+2

Đây là ** [ câu trả lời gần đây hơn] (http://www.stackoverflow.com/a/23815524/129130) ** –

Trả lời

9

file .msi là cửa sổ tập tin cài đặt mà không có thời gian chạy cửa sổ cài đặt, setup.exe thể được bất kỳ programm thực thi (có thể là một trong những cài đặt công cụ trên máy tính của bạn)

-2

MSI về cơ bản là một trình cài đặt từ Microsoft được xây dựng vào các cửa sổ. Nó liên kết các thành phần với các tính năng và chứa thông tin điều khiển cài đặt. Nó không phải là cần thiết mà tập tin này có chứa các tập tin yêu cầu người dùng thực tế tức là các chương trình ứng dụng mà người dùng mong đợi. MSI có thể chứa một setup.exe khác bên trong nó mà MSI kết thúc tốt đẹp, mà thực sự chứa các tập tin yêu cầu của người dùng.

Hy vọng điều này sẽ khiến bạn nghi ngờ.

+12

Điều này gây nhầm lẫn và thường không chính xác - trong các tệp 'MSI' đó thường ** KHÔNG ** quấn' setup.exe' các tệp, nhưng ngược lại. –

153

MSI là cơ sở dữ liệu Trình cài đặt Windows. Windows Installer (một dịch vụ được cài đặt với Windows) sử dụng phần mềm này để cài đặt phần mềm trên hệ thống của bạn (ví dụ: sao chép tệp, đặt giá trị đăng ký, v.v.).

Một setup.exe có thể là bootstrapper hoặc trình cài đặt không phải msi. Một trình cài đặt không phải msi sẽ trích xuất các tài nguyên cài đặt từ chính nó và quản lý cài đặt của họ trực tiếp. Một bootstrapper sẽ chứa một MSI thay vì các tập tin cá nhân. Trong trường hợp này, setup.exe sẽ gọi Windows Installer để cài đặt MSI.

Một số lý do khiến bạn muốn sử dụng một setup.exe:

  • Windows Installer chỉ cho phép một MSI để được cài đặt cùng một lúc. Điều này có nghĩa là rất khó để có một MSI cài đặt MSI khác (ví dụ như các phụ thuộc như .NET framework hoặc thời gian chạy C++). Vì setup.exe không phải là MSI, nó có thể được sử dụng để cài đặt một số MSI theo thứ tự.
  • Bạn có thể muốn kiểm soát chính xác hơn cách cài đặt được quản lý. MSI có các quy tắc rất cụ thể về cách quản lý cài đặt, bao gồm cài đặt, nâng cấp và gỡ cài đặt. Một setup.exe cho phép kiểm soát hoàn toàn quá trình cấu hình phần mềm. Điều này chỉ nên được thực hiện nếu bạn thực sự cần sự kiểm soát thêm vì nó là rất nhiều công việc, và nó có thể được khôn lanh để làm cho nó đúng.
+5

Tôi sẽ gõ điều này - đây có lẽ là những gì ông đang tìm kiếm – Mongoose

+0

Trong kinh nghiệm của tôi xây dựng một trình cài đặt MSI là * rất nhiều công việc * so với việc xây dựng một trình cài đặt dựa trên exe. Điều này phụ thuộc rất nhiều vào các công cụ bạn sử dụng để xây dựng trình cài đặt ngay từ đầu. Thật không may tất cả các công cụ cài đặt dựa trên MSI mà tôi đã thấy có thể là các công cụ GUI thương mại hoặc các công cụ dựa trên WiX phức tạp. Cả hai đều không phù hợp với nhu cầu của tôi đặc biệt tốt (tức là tự động xây dựng trình cài đặt bằng tập lệnh). – craftworkgames

3

MSI là tệp trình cài đặt cài đặt chương trình của bạn trên hệ thống thực thi.

Setup.exe là một ứng dụng (tệp thực thi) có tệp msi là một trong các tài nguyên. Thực thi Setup.exe sẽ lần lượt thực thi msi (trình cài đặt) ghi ứng dụng của bạn vào hệ thống.