Chúng tôi hiện có 4 cài đặt cho phần mềm máy khách của chúng tôi:Force ghi đè của App.config trong khi cài đặt
- ClientSetupTest
- ClientSetupProduction
- ClientUpdateTest
- ClientUpdateProduction
Sự khác biệt duy nhất giữa chúng là Thiết lập chứa các tệp có thể phân phối lại các Báo cáo Crystal và Cập nhật không không. Kiểm tra và sản xuất chỉ định rõ môi trường nào chúng chạy và sự khác biệt duy nhất có một dòng trong tệp Client.exe.config.
Dumb, tôi biết, đó là lý do tại sao tôi thay thế tất cả bằng một trình cài đặt sau khi loại bỏ Báo cáo tinh thể. Trình cài đặt mới ghi môi trường đã chọn vào tệp setup.config, được tham chiếu bởi thuộc tính tệp (see here).
Thuộc tính "tệp" mới đối với tệp cấu hình với trình cài đặt mới này. Vấn đề tôi đang gặp phải là nếu chúng ta sửa đổi tệp Client.exe.config trên một cài đặt cũ, sau đó chạy trình cài đặt mới, tệp cấu hình không bao giờ được cập nhật với thuộc tính "tệp".
Có cách nào để buộc tệp cập nhật tệp không? RemovePreviousVersions không chính xác hoạt động, vì nó là một trình cài đặt khác, trừ khi tôi hiểu nhầm điều gì đó. Ý tưởng hiện tại của tôi, có thể sẽ hoạt động, là thêm mã trong phương thức OnBeforeInstall để đổi tên Client.exe.config cũ thành tệp sao lưu, vì vậy nó sẽ luôn viết một tệp mới. Có vẻ như cần phải có một giải pháp đơn giản hơn trong bản cài đặt. Ý tưởng nào?
EDIT: Đổi tên tệp cấu hình cũ thành Client.exe.config.old trước khi gọi base.OnBeforeInstall() không hoạt động. Nó đã đổi tên tệp, nhưng chưa bao giờ viết tệp mới.
Cảm ơn. Tôi sẽ cung cấp cho các tùy chọn tùy chỉnh một shot. Tôi vẫn sẽ có vấn đề không mang theo các thiết lập tùy chỉnh của họ, nhưng nếu nó đã được sửa đổi, tôi có thể phát hiện nó và sao chép cấu hình cũ. –