Tôi tương đối mới với WiX. Đó là một công cụ tuyệt vời, nhưng tôi vẫn cần một số thời gian để tìm hiểu nó tốt hơn. Tôi đã gặp sự cố khi đăng ký và hủy đăng ký thành phần COM . Tôi đã tạo trình cài đặt cho hai ứng dụng, cho phép gọi chúng là A và B. Cả hai đều đang sử dụng cùng một thành phần COM. Tôi đã sử dụng công cụ nhiệt, như được khuyến nghị là . Khi cài đặt A hoặc B, thành phần được đăng ký mà không có bất kỳ vấn đề nào .Khắc phục: COM hủy đăng ký khi xóa một trong hai chương trình
Nhưng khi tôi cài đặt A và B, sau đó loại bỏ A (với chương trình Thêm/loại bỏ), lớp COM không được đăng ký và B không thể sử dụng nữa. Có giải pháp sạch để ngăn điều này xảy ra không? Tôi muốn hủy đăng ký COM khi BOTH A và B được gỡ cài đặt.
Bất kỳ trợ giúp sẽ được đánh giá cao,
Trân trọng, madbadger
EDIT: Cảm ơn cho câu trả lời của bạn. Tôi đặt GUID cho cùng một giá trị trong cả hai trình cài đặt và bây giờ các khóa registry đang được gỡ bỏ đúng cách, đó là khi chương trình cuối cùng được loại bỏ khỏi hệ thống.
Hovewer, vấn đề vẫn tồn tại vì một lý do. Tôi đã kiểm tra sổ đăng ký theo HKEY_CLASSES_ROOT/CLSID/[COM GUID phù hợp]. Đây là những gì xảy ra:
- Tôi cài đặt A và đường dẫn đến COM được đặt thành [đường dẫn đến A/component.dll]
- Tôi cài đặt B và đường dẫn đến COM được đặt thành [đường dẫn đến B/component.dll ]
- Tôi xóa B và đường dẫn đến COM vẫn còn [đường dẫn đến B/component.dll]
- Hiện tại A không thể truy cập thành phần COM được đăng ký, vì [đường dẫn đến B/component.dll] không tồn tại nữa
Bây giờ tôi giả định rằng bắt buộc phải đặt thành phần COM trong cùng thư mục cho cả hai ứng dụng. Trình cài đặt Windows có thể không hoàn nguyên về đường dẫn cũ hay là thiếu thứ gì đó không?
Tôi có nên đặt thành phần COM ở một vị trí cho cả hai trình cài đặt không? Thư mục system32 có phải là nơi tốt cho nó không? – madbadger
Vâng, bạn phải đặt nó ở cùng một vị trí.(Trình cài đặt cửa sổ xác định với cả GUID và đường dẫn tệp/đăng ký). System32 KHÔNG phải là một nơi tốt. Tôi muốn đề nghị một nơi nào đó dưới thư mục tập tin phổ biến (thường là 'Program Files \ Common Files \ YourCompanyName'). Bạn sẽ nhập vào Wix như sau: 'Directory =" [CommonFilesFolder] \ YourCompanyName "' –
Cảm ơn rất nhiều vì đã giải thích điều này rất tốt! – madbadger