2009-08-19 32 views
8

Tôi có thể tìm thấy nhiều thông tin về cách nâng cấp msi. Ví dụ. thông tin về nâng cấp nhỏ, nâng cấp nhỏ, nâng cấp lớn và trường hợp sử dụng cũng như giới hạn của chúng. Tuy nhiên, tôi không thể tìm thấy thông tin về các hành vi nâng cấp mô-đun kết hợp, chẳng hạn như:Cách nâng cấp mô-đun hợp nhất?

  1. Nó có vẻ như msm không có cách nào để xác định nhỏ, nhỏ, hoặc nâng cấp lớn. Vì vậy, theo cách nào nó hoạt động? Google có gỡ cài đặt phiên bản cũ bản cập nhật đầu tiên hoặc duy nhất đã thay đổi tệp không?
  2. Có cách nào để chỉ định từ phiên bản nào có thể được nâng cấp như msi?
  3. Tôi có thể thêm/xóa/đổi tên thành phần cho phiên bản mới không?
  4. Nếu phiên bản mới hơn của msm này là đã được cài đặt và vùng chứa msi quyết định cài đặt, nó sẽ ghi đè lên phiên bản cũ hơn msm này?

Trả lời

7

Có hai kịch bản nâng cấp là một mô-đun kết hợp có thể tham gia. Đầu tiên là khi trình cài đặt được nâng cấp, và nó nâng cấp một tập tin .msm. Điều này xảy ra trong các trường hợp như gói dịch vụ Visual Studio nơi chúng cung cấp các mô-đun hợp nhất được cập nhật để bạn sử dụng. Điều này có thể có vấn đề khi các tệp .msm không có phiên bản tệp (mặc dù chúng có phiên bản mô-đun hợp nhất), vì vậy quy tắc phiên bản tệp không áp dụng vui lòng. Có lẽ bạn không hỏi về trường hợp này.

Kịch bản khác là khi mô-đun hợp nhất đã được hợp nhất vào trình cài đặt sẽ nâng cấp. Nó không còn là một mô-đun hợp nhất, mà thay vào đó các tệp của nó và các bản ghi khác là một phần của trình cài đặt tiêu thụ. Trong trường hợp này, .msi mà nó đã được hợp nhất kiểm soát các bước nâng cấp. Hai người tương tác, thông báo câu trả lời của bạn cho ba câu hỏi đầu tiên của bạn. Nếu mô-đun hợp nhất có các thay đổi không tuân theo các quy tắc nâng cấp nhỏ, thì trình cài đặt tiêu thụ sẽ không thể sử dụng bản nâng cấp nhỏ và phải sử dụng các nâng cấp lớn. Tương ứng nếu bạn muốn sử dụng (hoặc cho phép) nâng cấp nhỏ trong trình cài đặt tiêu thụ, bạn phải cẩn thận về các thành phần của bạn. Điều này có thể khó hơn trong một số .msi vì bạn không thể thêm các tính năng mới bên trong mô-đun hợp nhất. Quy tắc phiên bản tệp sẽ áp dụng giống như chúng thực hiện trong tất cả các cài đặt Windows Installer; do đó câu trả lời cho câu hỏi thứ tư của bạn được xác định trên cơ sở từng tệp, thành phần theo thành phần thay vì câu trả lời của nhóm cho toàn bộ nội dung của mô-đun.

+0

Câu trả lời hay. Nó là kịch bản thứ hai. Hình ảnh trình cài đặt windows đang trở nên rõ ràng hơn đối với tôi ... – Dudu

0

Câu hỏi: Tôi tin rằng tôi cần biết cách phiên bản mô-đun hợp nhất như được mô tả trong kịch bản thứ hai trong câu trả lời.

trạng:

tôi có rất nhiều sản phẩm mà tất cả cài đặt các module kết hợp tương tự.

Nếu một sản phẩm cài đặt phiên bản mới hơn của mô-đun hợp nhất, tôi không muốn phiên bản cũ của một sản phẩm khác ghi đè mô-đun hợp nhất mới nhất.

Ai đó có thể mô tả nếu điều này là có thể và nếu có thì làm cách nào?

+0

Điều này thực sự phải là câu hỏi độc lập của riêng nó (tham khảo câu hỏi này nếu cần). Nếu mô-đun hợp nhất và phiên bản mới hơn của nó được tác giả tốt, điều này sẽ chỉ hoạt động. Các phiên bản tệp mới hơn sẽ ghi đè lên các phiên bản cũ hơn nhưng không phải ngược lại.Các mã thành phần được chia sẻ sẽ tham chiếu đếm chính xác để gỡ cài đặt ngay cả người dùng duy nhất của các tệp mới nhất sẽ không xóa các tệp được chia sẻ. Tóm lại: đảm bảo tuân theo quy tắc phiên bản tệp và thành phần và lý tưởng chỉ cập nhật các tệp hiện có khi nâng cấp thiết kế của mô đun hợp nhất này. Sau đó tất cả sẽ hoạt động tốt. –

+1

Tôi gặp khó khăn khi tìm tài liệu chi tiết về điều này, vì vậy đây là những gì tôi đã xác nhận từ thử nghiệm: Cho: 2 phiên bản của mô-đun hợp nhất, gọi chúng là MMv1.msm & MMv2.msm; mỗi .msm chứa 1 tệp MyFile.dll; MMv1.msm có v1.0 của MyFile.dll; MMv2.msm có v2.0 của MyFile.dll; MMv1.msm được trình cài đặt sử dụng cho ứng dụng A1; MMv2.msm được sử dụng cho ứng dụng A2. Sau đó, điều gì sẽ xảy ra khi ... 1) Ứng dụng A1 được cài đặt, sau đó là A2? MyFile kết thúc tại v2.0; 2) A1, sau đó A2, được cài đặt, sau đó chỉ cần A2 được gỡ cài đặt? MyFile vẫn ở phiên bản 2.0. 3) A2 được cài đặt, sau đó A1? MyFile bắt đầu từ phiên bản 2.0 và vẫn ở phiên bản 2.0. –

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