2013-07-01 36 views
12

Tôi có hai hành động tùy chỉnh, một trong những hành động mà tôi muốn thực thi khi sản phẩm của mình được cài đặt và cài đặt khác khi nó được gỡ cài đặt.Tôi làm cách nào để thực hiện tác vụ tùy chỉnh trong WiX chỉ thực thi khi cài đặt hoặc gỡ cài đặt?

Tác vụ tùy chỉnh của tôi hiện được gọi từ mô-đun hợp nhất sau "InstallFinalize", nhưng điều này xảy ra cho cả cài đặt và gỡ cài đặt. Tôi đã thử thêm "KHÔNG CÀI ĐẶT VÀ KHÔNG UPGRADINGPRODUCTCODE" điều kiện, nhưng điều đó đã cho tôi một lỗi:

Error 2762. Cannot write script record. Transaction not started.

Tôi cũng đã cố gắng gắn với các hoạt động khác (ví dụ, UnpublishComponents), nhưng tôi không thể tìm thấy bất kỳ cài đặt nào là duy nhất để cài đặt hoặc gỡ cài đặt.

Làm cách nào để khắc phục sự cố này?

+0

bản sao có thể có của [Cách thêm hành động tùy chỉnh WiX chỉ xảy ra khi gỡ cài đặt (qua MSI)?] (Http://stackoverflow.com/questions/320921/how-to-add-a-wix-custom- action-that-happen-only-on-uninstall-via-msi) –

Trả lời

11

Hãy thử tiếp theo
1. Chỉ dành cho cài đặt:

<InstallExecuteSequence> 
<Custom Action="SomeAction" After="InstallFinalize">NOT Installed AND NOT REMOVE</Custom> 
</InstallExecuteSequence> 

2. Đối với Uninstall cố gắng sử dụng: Rob's answer

UPGRADINGPRODUCTCODE tài sản được thiết lập chỉ trong RemoveExistingProducts CA.

+0

Cảm ơn rất nhiều, đây là cách để làm điều đó. –

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