2009-04-22 29 views
17

Tôi có trình cài đặt ứng dụng cần cài đặt trên bất kỳ phiên bản hiện tại nào, bất kể số phiên bản.WiX-- luôn ghi đè lên phiên bản trước

Thay vào đó, tôi có trình cài đặt liên tục nói rằng tôi cần phải chuyển đến thêm/xóa chương trình. Đó là hành vi rất khó chịu đối với những người thử nghiệm của tôi, vì nó chỉ làm chậm chúng mà không có lý do thực sự trong đầu họ - gói cài đặt trước sẽ luôn cài đặt, xóa bất kỳ tệp nào trước đó, vì vậy chúng không bao giờ phải thực hiện bước đó. Chúng tôi cũng có một cơ sở khách hàng (lớn) được đào tạo tương tự, trong đó bất kỳ phiên bản nào tôi cài đặt ngay bây giờ đều sẽ ghi đè bất kỳ cài đặt nào tôi có thể có trước đó.

Dường như, từ những gì tôi có thể thu thập, mô hình WiX là làm những việc như chặn cài đặt phiên bản ngược và những thứ phức tạp khác, như vá. Khách hàng của chúng tôi, thẳng thắn, không đủ thông minh để biết hoặc quan tâm đến việc vá, hợp nhất, bất cứ thứ gì và chỉ muốn một trình cài đặt luôn hoạt động (và tôi nghiêng về đồng ý với họ; băng thông rẻ). Vì vậy, làm thế nào để tôi có được điều đó?

Tôi đã thử điều này, nhưng nó chỉ dường như không thành vấn đề:

<InstallExecuteSequence> 
    <RemoveExistingProducts Before="InstallInitialize"/> 
</InstallExecuteSequence> 

Đây là phiên bản 3.0.5120 của WiX.

EDIT: Theo đề nghị của Rob ở đó, tôi đã thêm mã này:

<InstallExecuteSequence> 
    <RemoveExistingProducts After="InstallInitialize"/> 
</InstallExecuteSequence> 

<Upgrade Id="27cb76c7-544e-465f-b1f3-b11d9a49e416"> 
    <UpgradeVersion Minimum="0.8.0" 
        IncludeMinimum="yes" 
        Maximum="1.5.1" 
        Property="OLDERVERSIONBEINGUPGRADED" /> 
</Upgrade> 

Tôi không thêm mã để không cho phép cài đặt rollback; vì những lý do khiến tôi vô cùng lúng túng, chúng ta hãy nói rằng sự gia tăng số phiên bản không nhất thiết liên quan đến sự gia tăng phần mềm tốt lành. Tôi không muốn bất cứ ai bị khóa ra khỏi những gì họ nghĩ rằng họ cần.

Ngoài ra, rất quan trọng, là thay đổi GUID mặc định cho sản phẩm thành "*" để tạo GUID khác với trình cài đặt khác, điều này rõ ràng là vấn đề.

+2

tôi không nhận được câu cuối cùng của bạn: Đặt GUID mặc định cho sản phẩm * tạo GUID mới cho mọi trình cài đặt được biên dịch. Điều này dẫn đến cài đặt mới cạnh nhau cho mọi bản cập nhật. Ít nhất đó là những gì tôi đã tìm ra. Tôi vẫn đang cố gắng tìm một PoC làm việc đơn giản cho vấn đề của bạn ... –

+0

Với tôi, có vẻ như việc cài đặt sẽ không bao giờ cạnh nhau. Miễn là mã nâng cấp phù hợp, phiên bản cũ sẽ được gỡ cài đặt và phiên bản mới sẽ được cài đặt ở vị trí của nó. Đây không phải là hành vi mong đợi từ wix? – Shadoninja

Trả lời

18

Bạn muốn nâng cấp chính. Có một chủ đề dành riêng cho điều đó trong WiX.chm "Cách thực hiện" (cũng trên web: http://wix.sourceforge.net/manual-wix3/major_upgrade.htm).

+0

Tìm kiếm thú vị. Vì vậy, nếu tôi chỉ muốn các công cụ nâng cấp, nhưng tôi cũng muốn cho phép quay trở lại một phiên bản, sau đó tôi chỉ cần bỏ phần thứ hai về việc không cho phép cài đặt phiên bản thấp hơn, tôi đang suy nghĩ. – mmr

+0

@mmr Bạn có thể chia sẻ những gì bạn đã làm không? Liên kết được cung cấp dường như không trả lời đầy đủ cho câu hỏi của bạn, nếu bất cứ điều gì nó cho bạn biết làm thế nào để làm điều ngược lại với những gì bạn muốn. – user145400

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