Phiên bản MyApp 1.0 chứa tệp foo.dll. Phiên bản của tệp này là phiên bản 10.5.567. Bây giờ MyApp là phiên bản 2.0 và phiên bản của foo.dll là 2.0.123. Phiên bản là LOWER so với phiên bản cũ. Nhà cung cấp đã viết dll này đã quyết định quay lại với số phiên bản tệp. Đây không phải là quyết định mà tôi có thể thay đổi.Cài đặt tệp bất kể số phiên bản với WiX
Làm thế nào để WiX luôn cài đặt tệp này?
Hành động RemoveExistingProducts được lên lịch sau hành động InstallFinalize và cũng không thể thay đổi.
InstallShield có cờ 'luôn ghi đè' nhưng tôi không nghĩ rằng tôi có thể bắt chước điều này mà không thay đổi hành vi của tất cả các tệp thông qua trình chuyển đổi trình biên dịch. Tôi không muốn cái này. Tôi chỉ muốn cập nhật tập tin này.
Tôi cũng đã cố gắng
<RemoveFile Id="foo.dll" On="install" Name="foo.dll" />
Nhưng điều này đã không làm việc một trong hai. Tôi sẽ nhận được 'Lỗi 2753 Tệp foo.dll không được đánh dấu để cài đặt' sau này.
Rất cố gắng, nhưng có thể. Xem trả lời của tôi trong chủ đề này cho một liên kết đến một danh sách các cách tiếp cận khác nhau. –
Tôi đã thử sử dụng DefaultVersion để cài đặt tệp .MDE và nó hoạt động tốt khi tôi cài đặt bản vá, tệp được ghi đè chính xác. Vấn đề duy nhất là bản vá sẽ không gỡ cài đặt. Nhật ký cài đặt cho biết "Tệp mới được phiên bản - tệp hiện có không phiên bản" và gỡ cài đặt được gọi cho phương tiện gốc. Tôi vẫn chưa giải quyết được điều này nên mọi lời đề nghị sẽ được hoan nghênh. – Dave