2009-05-24 36 views
44

Tôi luôn tự hỏi về điều này. Vì vậy, nhiều thiết lập ứng dụng có một tệp zip mà bạn giải nén và trong đó là một loạt tệp, trong số những thứ khác là exe và msi. Sự khác biệt là gì? Chúng thường có cùng kích cỡ. Tôi không bao giờ thực sự chắc chắn cái nào để thực hiện, đôi khi tôi làm exe và đôi khi các msi, và nó thường làm việc với một trong hai. Nhưng một trong số họ có làm bất cứ điều gì mà người kia không làm không? Và nếu không, có phải đó là một sự lãng phí khi có hai tập tin thực hiện điều tương tự không? Đặc biệt khi suy nghĩ về kích thước tải xuống, vv ...Tại sao nhiều chương trình có cả setup.exe và setup.msi?

Không chắc chắn điều này nên ở đây hoặc trên ServerFault, hoặc có thể không, nhưng tôi đoán là các nhà phát triển thường là những người tạo tệp thiết lập. giống như nó là =)

+0

Tôi thường tự hỏi điều tương tự. Và, tôi nghĩ điều này thuộc về đây. –

+0

Đây là câu trả lời gần đây nhất: http://stackoverflow.com/a/23815524/129130 –

Trả lời

36

Trong trường hợp bạn có cả exe và msi, exe chỉ là bộ nạp cho msi. Nếu bạn có một cài đặt hỗ trợ nhiều ngôn ngữ thì exe áp dụng một biến đổi ngôn ngữ (mst) trên msi trước khi cài đặt.

Bạn có thể xem exe là một trình bao bọc xung quanh msi. Tệp msi có thể hoặc không được cung cấp riêng. Lý do tại sao mọi người cung cấp tệp msi cũng là để tạo điều kiện cho việc cài đặt chính sách nhóm (trong cơ sở hạ tầng Thư mục Họat động Windows) vì bạn chỉ có thể đẩy các cài đặt của các tệp msi xuống chứ không phải exes.

+16

+1, exe cũng có thể kiểm tra một số điều kiện tiên quyết cho msi, chẳng hạn như câu lệnh Windows Installer – Lucas

13

Cài đặt thực tế được thực hiện trong MSI. Như Prashast đã nói, exe chỉ là một wrapper, nhưng lý do để có exe, là một exe là allways có thể chạy. Nếu người dùng không cài đặt MS Installer trên máy tính, hoặc phiên bản MS Installer của anh ta cũ hơn phiên bản mà bạn cài đặt, thì file MSI không thể chạy được.

exe ​​cung cấp cài đặt tự động trình cài đặt MS (bao gồm một số câu hỏi cho người dùng nếu anh/cô ấy muốn thực hiện việc này) trước khi chạy tệp MSI. Trong hầu hết các trường hợp, các gói cài đặt cần thiết cho Microsoft Installer được bao gồm bên trong setup.exe, hoặc đôi khi nó chỉ là kiểm tra điều kiện tiên quyết với một liên kết để tải xuống cài đặt từ Microsoft.

20

setup.exe là trình bao bọc cho MSI, nhưng không phải là chỉ trình bao bọc.

  • Các setup.exe có thể dựa vào một setup.ini để xác định các thông số
  • Các setup.exe kiểm tra cho Windows Installer (MSI không thể được cài đặt bằng cách khác)
  • Các setup.exe có thể kiểm tra cho các khuôn khổ, như .NET framework. Nhà phát triển có thể chọn một trong số những người được xác định trong C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages (dành cho Visual Studio 2008). Nếu đó là thiếu, nó sẽ cố gắng để tải về từ http://www.microsoft.com/
  • Các setup.exe có thể được cấu hình lại với msistuff.exe
2

Nói cách rất cơ bản,

bạn có thể cung cấp chỉ là tập tin .msi và nó sẽ cài đặt . nhưng .exe sẽ không hoạt động nếu không có .msi

+2

** Câu trả lời này không chính xác **. Một 'thiết lập.exe' chương trình có thể là một loạt các mã mà chính nó unpacks tập tin, sao chép chúng vào ổ cứng của bạn, và đăng ký chúng với registry hoặc bất kỳ sự kết hợp của chúng. Bạn không cần phải có MSI để cài đặt ứng dụng nếu chương trình 'setup.exe' được viết theo cách này hoặc được tạo bằng trình quản lý gói như' InstallShield' mà không có tùy chọn MSI được chọn. –

Các vấn đề liên quan