2013-04-20 38 views
19

Kịch bản của tôi là: Tôi muốn trình cài đặt hoàn toàn xóa phiên bản cũ (tất cả các tệp ngoại trừ các tệp được tạo bởi ứng dụng trong suốt cuộc đời) và thay thế bằng phiên bản mới .Có an toàn khi sử dụng GUID tự tạo trên thẻ Component

Trong tập lệnh Wix, tôi sử dụng GUID được tạo tự động (dấu hoa thị) cho ID sản phẩm và ID gói, trong khi tôi sử dụng GUID riêng cho UpgradeCode luôn giống nhau. Những gì tôi không chắc chắn nếu tôi có thể sử dụng một cách an toàn tự động tạo GUID (dấu hoa thị) cho các thẻ thành phần là tốt, đối với kịch bản của tôi?

Cho đến nay tôi đã sử dụng NSIS. Tôi muốn thử Wix nhưng có một chút nghi ngờ vì mọi người trên diễn đàn nói rằng nó sẽ đưa bạn khoảng 30 ngày để tìm hiểu nó trong khi người ta có thể bắt đầu với NSIS trong 1-2 ngày. Tuy nhiên, đối với cài đặt chuẩn mà người dùng điển hình cần, tôi mất 2 ngày để có được gói cài đặt thực sự tốt bằng Wix. Nếu bạn có một nền tảng nhỏ trong xml, bạn có lẽ không phải lo lắng. Cảm ơn Rob và tất cả những người đóng góp khác cho việc tạo Wix!

+0

Dưới đây là một số thông tin chung về các thành phần guids - tức là khi chúng được thay đổi và không: https://stackoverflow.com/questions/1405100/change-my-component-guid-in-wix/1422121# 1422121 –

Trả lời

24

Có, auto-guid Component/@Guid là an toàn. Chúng được thực hiện rất đặc biệt để đảm bảo rằng GUID được tạo theo cách ổn định qua các phiên bản cho Hợp phần đó sao cho Component Rules không bị vi phạm.

Ngoài ra, nếu bạn không chia sẻ các thành phần với các sản phẩm khác bạn luôn sử dụng nâng cấp lớn bạn lên kế hoạch nâng cấp lớn đầu, sau đó bạn không phải lo lắng về phần GUID nhiều ở tất cả, bởi vì hai thành phần GUID định nghĩa sẽ không bao giờ được trên máy cùng một lúc. Ví dụ, giá trị mặc định cho các phần tử MajorUpgrade cung cấp cho bạn một cách chính xác này:

<MajorUpgrade DowngradeErrorMessage='A newer version of [ProductName] is installed.' /> 

Vì vậy, câu trả lời là "Có". :)

+7

Cảm ơn Rob! Tôi thực sự đánh giá cao tác giả gốc của Wix tìm thấy thời gian để trả lời các câu hỏi của người dùng tại đây. –

+0

Không sao cả. Cho chúng tôi một thời gian dài để có được một thuật toán ổn định cho Component Guids. Chiến thắng to lớn cho mọi người khi nó hoạt động. :) –

+1

Vậy nếu bạn có phiên bản cũ hơn của trình cài đặt sử dụng GUIDS rõ ràng thì sao? Có an toàn khi thay đổi nó để sử dụng '*' thay thế không? (hay đúng hơn, những trường hợp nào sẽ gây ra vấn đề?) – jalf