2010-03-11 35 views
5

Tôi đang triển khai cơ chế cập nhật đơn giản cho ứng dụng tôi đang viết phần cuối của quá trình cập nhật, bao gồm đổi tên tệp thi hành ứng dụng hiện tại từ myApp.exe thành myApp.old.exe rồi đổi tên tệp mới tải xuống và cập nhật tệp từ myApp.new.exe lên myApp.exe.Có cơ chế giao dịch hệ thống tệp nào có sẵn cho ứng dụng .net không?

Tôi muốn tìm cách cho phép hai hoạt động là nguyên tử, vì nếu ứng dụng của tôi bị lỗi (vì bất kỳ lý do gì, như một tiểu hành tinh rơi trên đường dây điện) sau khi đổi tên và trước khi đổi tên phiên bản mới , nó sẽ bị kẹt trong trạng thái không thể khởi động lại bằng cách sử dụng các phím tắt thông thường, vì vậy nó sẽ không thể hoàn thành cập nhật của nó.

Vì vậy, có cách nào để cập nhật không an toàn không?

Trả lời

2

Vào năm 2008/Vista trở lên có, mặc dù nó không được hiển thị. Tại thời điểm đó, NTFS có các giao dịch hệ thống tập tin trên hệ thống tập tin/mức hạt nhân.

Vui lòng kiểm tra:

http://www.michaelckennedy.net/blog/2007/12/07/SystemTransactionsAndWindowsVistaNTFSUpdated.aspx

http://www.codeguru.com/cpp/misc/misc/fileio/article.php/c9987

http://xavierdecoster.wordpress.com/2009/10/18/transactional-ntfs-txf/

Họ có mẫu mã.

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