2011-02-09 26 views
8

Tôi đang chạy vào khoanh vùng bằng InstallShield LE trong VS2010. Lần thứ hai chạy setup.exe kết quả (với số phiên bản tăng lên), tôi nhận được lỗiInstallShield LE "Một phiên bản khác của sản phẩm này đã được đăng ký"

Một phiên bản của sản phẩm này được đã đăng ký

Bằng "số phiên bản tăng lên", ý tôi là tôi đã thay đổi Version Minor, Xây dựng số lượng và sửa đổi đến các số lớn hơn trong AssemblyVersion và AssemblyFileVersion của .exe của tôi (của DLL được đặt thành "1.0. *")

[assembly: AssemblyVersion("0.2.103.005")] 
[assembly: AssemblyFileVersion("0.2.103.005")] 
[assembly: AssemblyInformationalVersion("Alpha 0.1 - 2/8/2011")] 

và cũng được cập nhật phiên bản sản phẩm trong Tab Thông tin chung của dự án thiết lập cài đặt LE của Installshield từ 0.10.0000 đến 0.11.0000.

Tôi đã gặp các trường hợp thông báo lỗi này trong các bài đăng SO khác và trên diễn đàn hỗ trợ cộng đồng của nhà sản xuất, nhưng không tìm thấy giải pháp áp dụng cho tôi.

Trả lời

12

Hóa ra câu trả lời là tạo một mục nhập trên tab Đường dẫn nâng cấp. Khi bạn làm điều đó, InstallShield LE sẽ trình bày một hộp thoại chọn tập tin. Nếu bạn có trình cài đặt cũ, có lẽ bạn có thể duyệt đến nó để nhận thông tin về phiên bản bạn muốn nâng cấp từ đó. Trong trường hợp của tôi, tôi không có trình cài đặt cũ tiện dụng, vì vậy tôi đã nhấn hủy và mục nhập Đường dẫn nâng cấp mới đã được tạo. Sau đó tôi đã điều chỉnh các thuộc tính của mục nhập đó để chỉ định một phiên bản tối thiểu và tối đa để nâng cấp và mọi thứ hoạt động như mong đợi.

EDIT

(từ @ lookatmike của bình luận)

Bạn cũng cần phải thay đổi phiên bản sản phẩm và (hơi counterintuitively) Bộ luật sản phẩm trong tab thông tin chung. Mã Nâng cấp phải giữ nguyên.

+2

Eric, điều này không làm việc cho tôi. Bạn đã làm bất cứ điều gì khác có ý nghĩa? Tôi đang tăng Phiên bản sản phẩm trong tab Thông tin chung và tôi đã thêm Đường dẫn nâng cấp có phạm vi phiên bản Min và Max rộng hơn bao gồm bất kỳ phiên bản nào được cài đặt trước đó. –

+2

Để mở rộng câu trả lời được chấp nhận của Eric ở trên, ngoài việc chỉ định đường dẫn nâng cấp như mô tả, bạn cũng phải thay đổi Phiên bản Sản phẩm và (phần nào phản gián) Mã Sản phẩm trong tab thông tin chung. Mã Nâng cấp ** phải ** giữ nguyên. –

+0

@lookatmike: Cảm ơn, tôi đã cập nhật câu trả lời với nhận xét của bạn. Nó cũng là hoàn toàn hợp pháp để bạn chỉ cần chỉnh sửa câu trả lời của tôi (giả sử bạn có đại diện để làm như vậy). –

6

OK - Vấn đề này đã khiến tôi điên rồ - và tôi chưa tìm thấy câu trả lời hoàn hảo trực tuyến.

Vì vậy, tôi quyết định tôi đã thực hiện vặn vẹo xung quanh.

Đây có thể không phải là cách "TỐT NHẤT" để giải quyết vấn đề - Tôi chắc chắn có một số cách dựa trên MSI phức tạp của "xử lý đúng cách này" nhưng tôi không thể tìm ra (tôi đoán tôi ? câm)

về cơ bản cài đặt của tôi chỉ cần đảm bảo NET được cài đặt, và các bản sao một số tập tin vào thư mục Program files, cho biết thêm một số thông tin nhập registry, các phím tắt, vv

Nếu bạn có một thủ tục cài đặt phức tạp hơn - Tôi khuyến khích bạn tìm câu trả lời "đúng" ở nơi khác. Nhưng đối với một cái gì đó đơn giản như tôi đã có (và tôi nghi ngờ 95% người đấu tranh với vấn đề này có) điều này hoạt động tốt.

Trước tiên - KHÔNG BAO GIỜ chạm vào "Mã sản phẩm". Tôi tin rằng đây là thủ tục chính xác cho các MSI trên bảng ... bạn không nên thay đổi mã sản phẩm. Và giải pháp này cũng dựa vào đó.

Tiếp theo - Sao chép mã sản phẩm vào khay nhớ tạm của bạn - chúng tôi sẽ cần nó trong giây lát.

Về cơ bản, chúng ta sẽ thông báo cho InstallShield luôn luôn UNINSTALL SẢN PHẨM nếu nó đã tồn tại trên máy.

enter image description here

enter image description here

Nếu bạn hoặc đối tác của bạn bao giờ chạy quá trình cài đặt âm thầm - chắc chắn rằng bạn làm điều này ở cả hai nơi:

enter image description here

Đối với "File Name và Command Line ", nhập:

msiexec /uninstall {YOUR PRODUCT CODE HERE} /passive

Vậy đó. Bây giờ trình cài đặt của bạn sẽ luôn gỡ cài đặt phiên bản cũ.

LƯU Ý: CÁC BẢNG NÀY BẤT K S CÁCH NÀO CỦA "Tôi đang chạy phiên bản mới hơn của trình cài đặt" CHECK.

+1

Đây là một hướng dẫn tuyệt vời, nhưng dường như KHÔNG áp dụng cho phiên bản Limited Edition của InstallShield (ISLE). Ít nhất cho VS2012, bạn cần nâng cấp lên một trong các phiên bản trả phí của InstallShield để có quyền truy cập vào Tác vụ tùy chỉnh "Trước khi tìm kiếm hệ thống". – jimtut

0

Tôi thường sử dụng lại các dự án Visual Studio của mình và gặp sự cố này. Như @ Eric-j nói rằng tôi đã phải thay đổi mã sản phẩm trong tab Thông tin chung của dự án Cài đặt Cài đặt VS:

enter image description here

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