2010-05-24 66 views

Trả lời

-1

Chỉ cần không bao gồm bất kỳ UI/UIRef yếu tố và sau đó không có giao diện người dùng sẽ được bao gồm :)

+1

Đó là giá trị rất hạn chế. Có một người dùng nhấp đúp chuột vào một MSI và nó cài đặt mà không cần bất kỳ xác nhận hoặc tình trạng kết quả là một kinh nghiệm người dùng rất tối ưu IMO. Đó là tốt nếu một phần của bạn của một bó của MSI đang được thay đổi với nhau bởi một chương trình xử lý giao diện người dùng (Think Visual Studio, SQL Server ..) nhưng nếu nó là một mình một mình MSI, tôi xem xét nó một công việc chỉ một nửa thực hiện. –

+0

Tôi đồng ý nó chắc chắn có giá trị giới hạn, nhưng nó trả lời OP. Giải pháp tốt hơn (hoặc "chính xác") là sử dụng các tham số msiexec như bạn đã nêu chi tiết bên dưới. – saschabeaumont

+0

Sử dụng msiexec.exe với các tham số dòng lệnh xác định chế độ im lặng với no-ui là cách để đi. – nil

54

Windows Installer (MSI) sử dụng các đối số dòng lệnh sau đây để được im lặng:

Im lặng cài đặt hoặc nâng cấp lớn im lặng:

msiexec.exe /i foo.msi /qn 

Im lặng bản nâng cấp nhỏ:

msiexec.exe /i foo.msi REINSTALL=ALL REINSTALLMODE=vomus /qn 

Im lặng gỡ bỏ cài đặt:

msiexec.exe /x foo.msi /qn 

con đường thực thi:

C:\Windows\system32\msiexec.exe 
+1

Câu trả lời hay. Vấn đề nhỏ là nếu bạn phải cho phép cài đặt thông qua một hộp thoại UAC, không có gì được trình bày bằng cách sử dụng/qn. Tuy nhiên, nếu bạn sử dụng/qb bạn sẽ có tùy chọn để cho phép nó. – Steztric

+1

Đó là các chức năng được thiết kế. Cài đặt im lặng theo định nghĩa không tương tác và lời nhắc UAC là tương tác. Không bấm có trong 30 giây sẽ không cài đặt được. Quá trình gọi của bạn đã được nâng lên trước khi gọi cài đặt. –

+0

Tôi cũng phải đối mặt với cùng một vấn đề, khi tôi thử chạy MSI ở chế độ UI đầy đủ bằng cách nhấp đúp vào MSI, nó sẽ nhắc tôi một UAC (Tên chương trình, nhà xuất bản: unknown, File Origin) và tôi cần chọn yes để tiếp tục cài đặt nhưng nhu cầu của tôi là cài đặt MSI bằng lệnh cmd msiexec ở chế độ không tương tác (về cơ bản nó sẽ tự động có trong UAC) nhưng điều đó không xảy ra trong mọi trường hợp (/ q/a/qn). Tôi đang sử dụng một công cụ để triển khai MSI trên 100 của máy chủ và nó trong nội bộ tạo ra một lệnh (msiexec/i /qn) dẫn đến thất bại. Bất kỳ ai có giải pháp cho điều này? –

4

Tất cả các trình cài đặt MSI liệu được tạo ra bởi WiX hoặc không thể điều khiển thông qua lệnh đối số dòng. Vì vậy, bạn có thể làm cho một trình cài đặt với giao diện người dùng và vẫn cài đặt nó âm thầm, không cần phải loại bỏ giao diện người dùng từ trình cài đặt chỉ cần ngăn chặn nó trên dòng lệnh. Hãy nhớ rằng, chắc chắn rằng bạn thêm các yếu tố nâng cấp trong trình cài đặt đầu tiên của bạn để những người tiếp theo sẽ phù hợp của

+0

Phần tử nâng cấp WiX đặt thuộc tính UpgradeCode và tạo một hàng trong bảng Nâng cấp. Về mặt kỹ thuật, MSI đầu tiên không phải có phần tử nâng cấp. Nó chỉ phải có thuộc tính UpgradeCode. Nếu bạn quên làm điều này, có những thủ thuật liên quan đến mục nhập bảng nâng cấp "giả" trong MSI tiếp theo với hành động tùy chỉnh đặt thuộc tính hành động cho Mã sản phẩm của MSI đầu tiên. Cố gắng tránh điều đó. :-) –

11

Installer .exe tạo ra với WiX có thể được chạy từ dòng lệnh mà không đòi hỏi người dùng nhập vào bằng cách sử dụng một trong các tham số dòng lệnh:

  • /yên tĩnh - Không hiển thị giao diện người dùng nào
  • /thụ động - Hiển thị giao diện người dùng nhưng không yêu cầu người dùng nhập. Về cơ bản chỉ hiển thị thanh tiến trình cài đặt

Câu trả lời này dựa trên WiX 3.9.

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