2013-08-30 36 views
5

Tôi có một số hành động tùy chỉnh mà tôi chỉ muốn thực thi trong kịch bản nâng cấp.Làm cách nào để phân biệt giữa cài đặt bình thường và nâng cấp trong WIX?

Tôi cố gắng để thiết lập một số thuộc tính, ví dụ như "myProperty" ... Khi tôi bước vào qua một tiêu chuẩn cài đặt, tôi có thể cài đặt chúng, và một ví dụ về XML đó là như sau ...

<Custom Action="SetMyPropertyToOn" After="exampleActionRuuningBeforeThisOne"> (ENABLEMYPROPERTY_CB) AND (NOT ENABLEMYPROPERTY_CB="0") AND (NOT ENABLEMYPROPERTY) AND (NOT Installed)</Custom> 

Nó chạy trong một cài đặt bình thường ... Tôi cũng muốn nó chạy trong một kịch bản nâng cấp.

+0

Một Major Nâng cấp hoặc một Tiểu Nâng cấp? Nếu bạn đang thực hiện nâng cấp nhỏ thì Cài đặt sẽ là đúng và điều này sẽ đánh giá sai. –

Trả lời

19

tôi sử dụng này trong tất cả các thiết lập của tôi:

<SetProperty After="FindRelatedProducts" Id="FirstInstall" Value="true"> 
     NOT Installed AND NOT WIX_UPGRADE_DETECTED AND NOT WIX_DOWNGRADE_DETECTED 
    </SetProperty> 
    <SetProperty After="SetFirstInstall" Id="Upgrading" Value="true"> 
     WIX_UPGRADE_DETECTED AND NOT (REMOVE="ALL") 
    </SetProperty> 
    <SetProperty After="RemoveExistingProducts" Id="RemovingForUpgrade" Sequence="execute" Value="true"> 
     (REMOVE="ALL") AND UPGRADINGPRODUCTCODE 
    </SetProperty> 
    <SetProperty After="SetUpgrading" Id="Uninstalling" Value="true"> 
     Installed AND (REMOVE="ALL") AND NOT (WIX_UPGRADE_DETECTED OR UPGRADINGPRODUCTCODE) 
    </SetProperty> 
    <SetProperty After="SetUninstalling" Id="Maintenance" Value="true"> 
     Installed AND NOT Upgrading AND NOT Uninstalling AND NOT UPGRADINGPRODUCTCODE 
    </SetProperty> 

Sau đó bạn có thể lên lịch hành động tùy chỉnh của bạn để chỉ chạy trên nâng cấp:

<Custom Action="NameOfCustomAction" Before="InstallFinalize"><![CDATA[Upgrading= "true"]]></Custom> 
+0

Cảm ơn Natalie, tôi chỉ có một vấn đề nhỏ với điều này. Bằng cách nào đó, tôi luôn luôn có vẻ để có được vào phần "FirstInstall", và sau đó bỏ qua phần còn lại, ngay cả khi nâng cấp ... Những người khác luôn bỏ qua. – Slippy

+0

Lạ lùng, tôi chưa từng trải nghiệm điều đó. Bạn có thể đăng tập tin đăng nhập của bạn có thể đó sẽ giúp? –

+4

Các thuộc tính WIX_UPGRADE_DETECTED và WIX_DOWNGRADE_DETECTED giả sử phần tử MajorUpgrade được sử dụng. Các quy tắc nâng cấp do người dùng xác định có thể có các tên ActionProperty khác nhau và một nâng cấp nhỏ sẽ không có những điều này chút nào. OP đã không nói những gì * loại * của việc nâng cấp ông đã làm. –

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