2010-04-13 34 views

Trả lời

36

Đặt Component giá trị Permanent="yes" như vậy:

<Component Id="LicenseDoc" Guid="*" Permanent="yes"> 
    <File Id ="License.rtf" Source="$(var.SolutionDir)Installer\License.rtf" /> 
</Component> 
+7

Tôi đã đăng câu hỏi cho danh sách gửi thư wixusers và có cùng một câu trả lời, nhưng cũng cần lưu ý về lá cờ Vĩnh viễn (lời khen của Phil Wilson): Miễn là mọi người nhận ra rằng Vĩnh viễn có nghĩa là vĩnh viễn vĩnh viễn. Nó không có nghĩa là "cho đến khi tôi thay đổi cài đặt thành vĩnh viễn". Nó làm cho thành phần đó vĩnh viễn trên hệ thống, và tôi sẽ không sử dụng nó trừ khi "vĩnh viễn cài đặt mãi mãi" là những gì được yêu cầu. – glenneroo

+0

Tôi sẽ làm sống lại chủ đề này và hỏi: nếu bạn có nhiều (200+) tệp mà bạn muốn rời khỏi? Đi đến từng thành phần và thêm vĩnh viễn = "có" hoặc thiết lập Guid = "" không cảm thấy đúng. – treaz

+1

nhưng đó là cách của WiX, bạn đang mô tả trạng thái hữu hạn của mỗi tệp, vì vậy không có sự mơ hồ về cách hệ thống nên trước/sau khi cài đặt/gỡ cài đặt. Vấn đề với các trình cài đặt cũ hơn là họ không xử lý tất cả các lỗi, do đó sẽ ở trạng thái lạ. MSI là một quá trình nhà nước. –

6

Khen ngợi của Phil Wilson từ wixusers mailing-list:

Xem các tài liệu SDK MSI cho bảng Component - thiết lập guid Component để được null (trống). Hiệu quả của điều này là thành phần không được đăng ký (vì vậy nó không thể được sửa chữa) và nó sẽ không bị gỡ cài đặt.

0

Một cách khác để ngăn chặn Trình cài đặt Windows xóa cấu phần khi gỡ cài đặt là đặt thành phần trống hoặc rỗng GUID. Điều này sẽ làm cho thành phần được cài đặt nhưng nó sẽ không bao giờ được theo dõi hoặc gỡ cài đặt.

Xem MSI SDK documentation: "... nếu cột này (ComponentId) không có giá trị, trình cài đặt không đăng ký thành phần và thành phần không thể được gỡ bỏ hoặc sửa chữa bởi trình cài đặt. Điều này có thể được cố ý thực hiện nếu thành phần chỉ cần thiết trong quá trình cài đặt, chẳng hạn như tác vụ tùy chỉnh xóa các tệp tạm thời hoặc xóa một sản phẩm cũ. Cũng có thể hữu ích khi sao chép các tệp dữ liệu vào máy tính của người dùng mà không cần phải đăng ký. "

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