2012-10-30 30 views
7

Tôi có một kịch bản Cài đặt Inno cài đặt ứng dụng của tôi và các tệp đi kèm của nó. Trên một số hệ thống, khởi động lại là bắt buộc, trên một số thì không. Tôi muốn tìm hiểu lý do khởi động lại yêu cầu. Làm cách nào để làm điều này một cách thông minh nhất? Cảm ơn bạn rất nhiều.InnoSetup: Tìm hiểu lý do để khởi động lại

+1

Chỉ để gỡ lỗi? Bạn có thể nhìn trộm trong HKLM \ System \ CurrentControlSet \ Control \ Session Manager \ PendingFileRenameOperations để xem nếu có di chuyển hàng đợi/xóa đang chờ khởi động lại tiếp theo –

+0

@ Alex, không có cách nào trực tiếp để xác định nó từ kịch bản InnoSetup, vì vậy nó có thể là câu trả lời. – TLama

+0

Có, vui lòng đặt thành "câu trả lời". – tmighty

Trả lời

4

Đối với mục đích gỡ lỗi bạn có thể nhìn vào bên trong

HKLM\System\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations

để xem nếu có bất kỳ động thái/đổi tên/xóa xếp hàng đợi để khởi động lại.

(Sysinternals utility viewer)

+1

Điều đó thực sự đã giúp, giải pháp hoàn hảo, cảm ơn bạn rất nhiều! – tmighty

1

Sử dụng /LOG khi bạn chạy cài đặt và sau đó nhìn vào log file mà nó tạo ra (theo mặc định trong %TEMP%). Nó nên hiển thị khá rõ ràng trong đó các tập tin đã được xếp hàng để thay thế khi khởi động lại, hoặc các lý do khác gây ra một yêu cầu khởi động lại được phát hành.

Thường khởi động lại được kích hoạt bằng cách sử dụng quá mức restartreplace mà không cần sử dụng một cái gì đó như AppMutex để đảm bảo ứng dụng đã được tắt đúng cách trước khi cài đặt hoặc từ các cài đặt phụ được thực hiện trong [Run].

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