Tôi đã sử dụng ApplicationDeployment.CurrentDeployment.DataDirectory
để lưu trữ nội dung do khách hàng tải xuống khi chạy, dự kiến sẽ có mỗi khi ứng dụng khởi chạy, tuy nhiên bây giờ tôi thấy các thay đổi này dường như ngẫu nhiên nếu ứng dụng được cập nhật.Tôi có thể lưu trữ các tệp dữ liệu một cách an toàn để triển khai ClickOnce ở đâu?
Phương pháp đáng tin cậy nhất để lưu trữ dữ liệu người dùng cho ứng dụng trong triển khai lần nhấp là gì?
Hiện nay tôi đã sử dụng các phương pháp sau đây
private const string LocalPath = "data";
public string GetStoragePath() {
string dir;
if (ApplicationDeployment.IsNetworkDeployed) {
ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;
dir = Path.Combine(ad.DataDirectory, LocalPath);
} else {
dir = LocalPath;
}
return CreateDirectory(dir);
}
tôi ban đầu theo bài viết Accessing Local and Remote Data in ClickOnce Applications dưới tiêu đề ClickOnce Data Directory
trong đó nêu này được khuyến khích con đường.
LƯU Ý: CreateDirectory(string)
chỉ cần tạo thư mục nếu thư mục chưa tồn tại. Tôi đã tìm thấy nguyên nhân gốc rễ của vấn đề là tôi đang tạo nhiều tệp và tệp chỉ mục, tệp chỉ mục này chứa đường dẫn tuyệt đối, nhấp một lần di chuyển nội dung (hoặc bản sao) lên bản nâng cấp, vì vậy đường dẫn tuyệt đối không còn tồn tại nữa. Tôi sẽ điều tra bộ nhớ bị cô lập vì Damokles đề xuất xem liệu điều này có cùng tác động đến các lần triển khai lần nhấp hay không.
Nếu bạn đi tuyến đường lưu trữ bị cô lập, hãy nhớ xem các câu hỏi ... http: // stackoverflow.com/questions/202013 – codeConcussion
Cảm ơn whatknott, tôi sẽ ghi nhớ điều này. –