2010-06-27 29 views
9
<RegistryKey Id="MyServerRegInstallDir" Root="HKLM" Key="Software\MyApp\Server" Action="create"> 
    <RegistryValue Name="InstallDir" Type="string" Value="[INSTALLDIR]" /> 
    <RegistryValue Name="DataDirectory" Type="string" Value="[MYAPPDATADIR]" /> 
    </RegistryKey> 

Các khóa con InstallDir và DataDirectory sẽ bị xóa khi gỡ cài đặt. Làm thế nào để ngăn chặn nó?Làm cách nào để ngăn Wix xóa các mục đăng ký khi gỡ cài đặt?

Lý tưởng nhất là hành động = "tạo" phải thực hiện.

+0

Mục đích của việc để lại dữ liệu trong sổ đăng ký sau khi chương trình bị xóa là gì? – kiamlaluno

+1

Khi ứng dụng được cài đặt lại, ứng dụng có thể khôi phục. – Rohit

+2

Tôi đã đưa cho bạn một con trỏ tới một thứ có thể hoạt động bên dưới. Nhưng tôi đồng ý với kiamlaluno, trình gỡ cài đặt của bạn nên làm hết sức mình để đặt máy ở trạng thái sạch khi nó gỡ cài đặt. Vì nếu cài đặt của bạn bị hỏng và khiến ứng dụng gặp tình trạng xấu, giải pháp "gỡ cài đặt sau đó cài đặt lại" cổ điển sẽ không hoạt động. – selbie

Trả lời

12

Đặt thuộc tính Vĩnh viễn = "có" trên thành phần gốc.

Permanent YesNoType  

Nếu thuộc tính này được thiết lập để 'có', trình cài đặt không loại bỏ các thành phần trong một cuộc bỏ cài đặt. Trình cài đặt đăng ký một máy khách hệ thống bổ sung cho thành phần trong cài đặt đăng ký Windows Installer (về cơ bản chỉ có nghĩa là ít nhất một sản phẩm luôn tham chiếu thành phần này). Lưu ý rằng tùy chọn này khác với hành vi không thiết lập một guid vì mặc dù thành phần là vĩnh viễn, nó vẫn có thể vá (vì Windows Installer vẫn theo dõi nó), nó không thể gỡ cài đặt được.

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