2013-04-12 46 views
5

Tôi đang sử dụng < MajorUpgrade> trong WiX 3.6 để gỡ cài đặt phiên bản trước của ứng dụng khi cài đặt phiên bản mới hơn. Ứng dụng của tôi cài đặt một tệp DLL mở rộng vào Windows Explorer, do đó, hãy gỡ cài đặt chuyên biệt các tệp trong danh sách sử dụng Explorer và mặc định để tắt ứng dụng được liệt kê. Điều này sẽ giết Windows Explorer khi shell của tôi biến mất (điều này có phần gây hấn cho người dùng), tuy nhiên tôi vẫn nhận được một lỗi nói rằng không phải tất cả các ứng dụng đều có thể tắt và yêu cầu khởi động lại là cần thiết. Sở thích của tôi là để tránh thrash này và bỏ qua hộp thoại Files-In-Use chỉ cần thông báo cho người dùng về việc khởi động lại cần thiết ở cuối. Có cách nào để yêu cầu WiX bỏ qua hộp thoại Tệp-Trong-Sử dụng không?WiX: Tránh hiển thị hộp thoại sử dụng tệp và chỉ nhắc khởi động lại khi kết thúc cài đặt

Trả lời

6

Bạn có thể tắt tích hợp Trình khởi động lại bằng cách đặt thuộc tính MSIRESTARTMANAGERCONTROL bằng "Disabled" (từ MSI SDK). Bạn cũng có thể thử xóa hộp thoại FilesInUse nhưng xác thực Internal Consistency Evaluator (ICE) tĩnh sẽ khiếu nại. Hy vọng của tôi là việc tắt Trình quản lý khởi động lại sẽ đủ để ngừng tìm cách lấy tài nguyên ra khỏi số explorer.exe.

+0

Xin chào Rob, đã cố gắng đặt MSIRESTARTMANAGERCONTROL thành Vô hiệu hóa mà không có may mắn. – ribram

+0

Sau đó, bạn sẽ phải loại bỏ hộp thoại 'FilesInUse' và hy vọng Trình cài đặt Windows không cung cấp hộp thoại bên trong. :) –

+0

Hi Rob, bằng cách loại bỏ Tôi giả sử kéo nguồn WiX và xây dựng lại nó mà không có hộp thoại? – ribram

6
<Property Id="MSIRESTARTMANAGERCONTROL" Value="Disable"/> 

Điều này làm việc cho tôi nhưng tôi không cố gắng giết bất kỳ dịch vụ hệ thống nào.

Bạn đã thử "DisableShutdown" chưa?

"" Windows Installer sử dụng hộp thoại FilesInUse. Thiết đặt này tắt các lần thử bằng Trình quản lý khởi động để giảm thiểu khởi động lại khi cài đặt gói Windows Installer chưa được tác giả sử dụng Trình quản lý khởi động lại. file được sử dụng bởi các ứng dụng. "

http://msdn.microsoft.com/en-us/library/aa370377%28v=vs.85%29.aspx

-Robin

+0

Cái này hoạt động với WiX 3.5 –

+0

Nó hoạt động nhưng nó gây ra lỗi '2803: xem hộp thoại không tìm thấy bản ghi cho hộp thoại ' – Alexandru

+0

Tôi đã đăng một câu hỏi tương tự (http://stackoverflow.com/questions/29103629/how -to-suppress-a-dialog) – Alexandru

1

tôi cũng có một tình huống mà các nỗ lực để đóng và mở lại ứng dụng sẽ luôn luôn thất bại. Khởi động lại là bắt buộc. Tôi đã cố gắng sử dụng tất cả các giải pháp được cung cấp tại đây. Không ai trong số họ làm việc. Tôi đã có thể giải quyết vấn đề chỉ đơn giản là mặc dù. Bài viết này là đầu mối. https://msdn.microsoft.com/en-us/library/aa369546(v=vs.85).aspx

Tôi đã thêm điều kiện vào hành động chuẩn InstallValidate luôn phân giải thành sai. Hành động không bao giờ chạy. Hành động tiêu chuẩn chỉ đề cập đến chi phí đĩa và các quy trình mở, Dừng hành động khỏi bị gọi là ngừng tất cả các ưu đãi để đóng mọi thứ. Tôi cũng phải thiết lập thuộc tính Windows Installer REBOOT thành FORCE để có được lời nhắc khởi động lại vào cuối quá trình cài đặt.

Ứng dụng của tôi có một dấu chân đĩa nhỏ. Nếu việc cài đặt của tôi thất bại sau này trong tiến trình vì đĩa đã đầy sẽ là một vấn đề lớn, tôi sẽ tìm cách tự mình làm tốn kém.

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