Các Exec dài được cài đặt .NET 3.5, và kịch bản ra được dựa trên một điều này: http://www.blackhillsoftware.com/blog/2006/06/26/using-innosetup-with-the-dotnet-framework/Làm cách nào để thiết lập Inno không bị đóng băng khi thực hiện một Exec dài?
Vấn đề là nó sử dụng "ewWaitUntilTerminated" bởi vì chúng ta cần phải nắm bắt các mã thoát. Nó thực hiện một chút tồi tệ hơn bởi thực tế là chúng tôi đang chạy nó/thụ động/norestart để nó ít hoạt động trên phần của người dùng (Có lẽ chúng ta không nên?)
Tùy chọn đơn giản nhất tôi có thể nghĩ là ẩn cửa sổ trong khi nó đang cài đặt .NET và hiển thị lại sau khi hoàn tất, nhưng tôi không chắc chắn cách thực hiện điều đó.
Giải pháp lý tưởng là hiển thị trang tiến trình, nhưng có vẻ như không thể thực hiện được vì chúng tôi cần trả lại ngay nhưng bằng cách nào đó vẫn được thông báo khi quá trình thoát và nắm bắt mã thoát bằng không chúng ta chỉ có một thanh tiến trình vĩnh cửu.
Bất kỳ ý tưởng nào về cách thực hiện việc này?
Chỉnh sửa: Giảm thiểu có thể tốt hơn, nhưng cũng không chắc chắn cách thực hiện điều đó. Chúng tôi hiển thị thông báo cho người dùng rằng quá trình có thể mất 10-20 phút, tuy nhiên vấn đề là biểu mẫu thiết lập chính hoàn toàn bị đóng băng, không thể di chuyển, thu nhỏ hoặc làm bất cứ điều gì với nó. Cũng chạy/thụ động trình cài đặt .NET không thực sự hiển thị bất kỳ tiến bộ nào cho một hoặc hai phút tốt trên máy chậm hơn.
Chỉ cần dành một buổi chiều cài đặt bản demo của một ứng dụng không bắt đầu bằng cách cảnh báo tôi rằng nó sẽ muốn .NET 3.5 cho đến sau lần khởi động lại bắt buộc đầu tiên ... cho phép người dùng có thể cảm thấy mệt mỏi cài đặt phụ. Tuy nhiên, tôi không có câu trả lời kỹ thuật. – RBerteig
Sau đó, .NET cũng yêu cầu khởi động lại, sau đó thiết lập của ứng dụng gốc từ lâu đã quên nó đang chạy và phải được tìm thấy thủ công trong thư mục tạm thời và chạy lại để cài đặt ứng dụng. – RBerteig
Vâng, chúng tôi thông báo cho người dùng đó và cho phép họ hủy trước khi khung được cài đặt và chúng tôi sẽ chặn khởi động lại trình cài đặt của .net và capture nó trong mã trả lại để thực hiện tự khởi động lại – Davy8