Không cần thiết phải tạo một ứng dụng chuyên dụng để cập nhật, ít nhất là không phải trên WM 6 với .netcf 3.5. Tôi đang tải tập tin .cab bằng cách sử dụng một webservice và sau đó bắt đầu một quá trình mới và gọi wceload để thực hiện cài đặt cab im lặng.Đây sẽ chăm sóc của tắt ứng dụng của tôi chạy, gỡ bỏ cài đặt nó và sau đó thực hiện quá trình cài đặt như được nêu trong MSDN docs here
Trong Windows Mobile Phiên bản 5.0 và sau đó, khi sử dụng Wceload.exe phải cài đặt lại một file .cab, Wceload. exe gỡ cài đặt phiên bản đã cài đặt trước của tệp .cab trước khi cài đặt phiên bản mới. Trong phần gỡ bỏ của quá trình này, Wceload.exe đóng bất kỳ thực thi hiện đang chạy đã được cài đặt trên thiết bị mục tiêu sử dụng một file .cab, dựa trên tên tập tin của họ. Wceload.exe cũng đóng bất kỳ tệp thực thi nào là đích của thao tác tệp, chẳng hạn như di chuyển hoặc sao chép. Để đóng một tệp thực thi, Wceload.exe gửi WM_CLOSE đến tất cả các cửa sổ cấp cao thuộc sở hữu của quy trình. Nếu quá trình này không thoát một cách kịp thời sau khi nhận được tin nhắn WM_CLOSE, sau đó Wceload.exe buộc đóng nó bằng cách gọi TerminateProcess. Wceload.exe không cố gắng đóng các tập tin thực thi được vận chuyển trong hình ảnh thời gian chạy trên thiết bị đích.
Tôi cũng có một cesetup.dll để xóa thêm các tệp trong khi gỡ cài đặt.
Vấn đề lớn tôi có là tôi không thể thay đổi thư mục cài đặt cho ứng dụng của mình khi cài đặt im lặng và mặc định là% installDir% thuộc tính từ tệp .inf của tôi. Và xây dựng một .cab riêng cho mọi thiết bị muốn cập nhật không phải là một giải pháp tuyệt vời.
Nguồn
2009-08-18 09:18:38