2011-10-21 30 views
8

Tôi có một dự án cài đặt MSI cài đặt dịch vụ windows.Dự án cài đặt .NET MSI - Ghi đè lên phiên bản trước

My phương pháp phiên bản đánh số được mô tả tốt nhất bằng đường bưu điện này: What are differences between AssemblyVersion, AssemblyFileVersion and AssemblyInformationalVersion?

Tôi không thay đổi phiên bản của dự án cài đặt của tôi như không thay đổi, và tôi đã có quá nhiều vấn đề khi làm điều đó.

Tôi đã cài đặt dịch vụ của tôi với các phiên bản lắp ráp sau

[assembly: AssemblyVersion("4.3")] 
[assembly: AssemblyFileVersion("4.3.0.0")] 

tôi chỉ xây dựng một trình cài đặt MSI để phiên bản này:

[assembly: AssemblyVersion("4.3")] 
[assembly: AssemblyFileVersion("4.3.1.0")] 

Khi tôi chạy MSI nó nói với tôi rằng tôi cần để gỡ cài đặt phiên bản trước đó.

Làm cách nào để giải quyết vấn đề này? Những gì tôi rốt cuộc muốn làm là:

  1. Cài đặt một MSI
  2. Install (re: nâng cấp lên) khác phiên bản đó ghi đè lên các phiên bản trước (dấu nhắc hoặc không kịp thời) a. Tôi không muốn phải gỡ cài đặt trước khi cài đặt bản cập nhật.

tính của dự án trình cài đặt của tôi là:

RemovePreviousVersions - True

InstallAllUsers - True

DetectNewerInstalledVersion - False

Version - 4.3.0

Những gì tôi đã thử:

  • Cập nhật phiên bản lắp ráp của dự án. Tuy nhiên, điều này tạo ra nhiều phiên bản của cùng một sản phẩm trong Add Remove Programs. Không muốn tôi muốn dịch vụ windows
  • Thay đổi phiên bản # trên dự án trình cài đặt. Nhưng điều này tạo ra rất nhiều lỗi khi cố cài đặt bất kỳ phiên bản nào của MSI. Tôi thậm chí còn có cảnh báo rằng tôi đã cài đặt trên một ổ đĩa mạng! (wow)

Bất kỳ trợ giúp nào sẽ là rockin!

Cảm ơn.

+0

Tôi luôn thay đổi phiên bản dự án trình cài đặt, với GIỮING mã nâng cấp và phải gỡ cài đặt theo cách thủ công. Đó là điều tốt nhất tôi nghĩ đến - bắt đầu với những yêu cầu tương tự như bạn. –

Trả lời

5

trong thuộc tính dự án thiết lập của thiết lập, bạn cần phải tăng thuộc tính "Phiên bản" cho mỗi phiên bản, trong khi vẫn giữ cùng một mã UpgradeCode.

Khi bạn tăng phiên bản, nó sẽ nhắc bạn nếu bạn muốn thay đổi Mã sản phẩm, Trả lời "Có".

Bạn cũng phải có các thuộc tính để xóa phiên bản trước và phát hiện phiên bản mới được đặt thành true.

+0

Cảm ơn người đàn ông - điều đó dường như hiệu quả. –

+0

Việc giữ cùng một mã nâng cấp có vẻ trái ngược với lựa chọn "Có" khi được yêu cầu thay đổi Mã sản phẩm. Đây có phải là mâu thuẫn không? – sweetfa

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