2011-06-22 21 views
11

Sử dụng Visual Studio 2010, tôi muốn chuyển sang sử dụng InstallShield LE thay vì Visual Studio Setup Project.Cấu hình InstallShield LE để xóa các phiên bản trước được tạo bằng Visual Studio Setup Projects

Trong dự án thiết lập, một tùy chọn RemovePreviousVersions tồn tại rất tuyệt vời để thực hiện trình cài đặt thực hiện nâng cấp tại chỗ khi phiên bản mới được phát hành.

Bây giờ với InstallShield LE, tôi đã cập nhật phiên bản và tạo Mã sản phẩm mới, nhưng sau khi chạy trình cài đặt, phiên bản trước đó vẫn còn hiện diện.

Tôi cần làm gì để dự án InstallShield xây dựng có thể xóa phiên bản trước đã được tạo bằng Dự án VS Setup?

Trả lời

8

Bạn có thể thử này:

  • mở MSI cũ của bạn với Orca và nhận UpgradeCode từ bảng tài sản
  • trong dự án InstallShield LE của bạn đi đến "Thông tin chung" trong solution explorer
  • đảm bảo trường "Mã nâng cấp" được đặt thành mã MSI UpgradeCode cũ của bạn

Bạn cũng nên đảm bảo rằng thuộc tính ALLUSERS có cùng giá trị cho cả hai vers ion (đó là cách tiếp cận tương tự). Bạn có thể đọc thêm về các bản nâng cấp tại đây: http://msdn.microsoft.com/en-us/library/aa369786(VS.85).aspx

+0

Đây có phải là cùng một mã UpgradeCode được hiển thị trong thuộc tính cho Dự án Thiết lập VS không? – JYelton

+0

Đối với bản ghi, nó * là * cùng một mã nâng cấp được hiển thị trong thuộc tính VS Setup Project. Orca là một nỗi đau lớn khi cài đặt vì tôi phải tải xuống 1GB SDK và chỉ cài đặt Orca từ nó. Tuy nhiên, nó đã tiết lộ rằng cài đặt cũ đã sử dụng cài đặt 'ALLUSERS' của 2 trong khi cài đặt mới đang sử dụng 1. (1 cho mỗi máy, 2 là mỗi người dùng hoặc mỗi máy và không có giá trị cho mỗi người dùng.) – JYelton

+1

Thật không may điều này vẫn không hoạt động. Cài đặt phiên bản A (VS Setup) sau đó cài đặt phiên bản B (InstallShield LE) vẫn dẫn đến hai phiên bản được cài đặt cùng một lúc. – JYelton

40

Điều này khiến tôi phát điên khi lần đầu tiên bắt đầu với dự án trong Visual 2012. Tôi tiếp tục sao chép các chương trình thêm/xóa và phiên bản cũ không được cập nhật. Đây là những gì tôi thấy tôi cần làm.

Trong Đường dẫn nâng cấp, hãy tạo đường dẫn mới. Để trống phiên bản tối thiểu (trừ khi bạn cần), bao gồm phiên bản tối thiểu có, Phiên bản tối đa phải được đặt thành phiên bản BẠN ĐANG CÀI ĐẶT NGAY BÂY GIỜ. Bao gồm phiên bản tối đa là có.

Mỗi lần bạn cài đặt bản cập nhật, hãy nâng cấp phiên bản Sản phẩm trong phần Thông tin chung. Nhấp vào Mã sản phẩm mới trong phần Thông tin chung KHÔNG THAY ĐỔI mã nâng cấp

Quay lại đường dẫn nâng cấp và đặt phiên bản Max thành cùng phiên bản bạn đang triển khai ngay bây giờ. Đây là chìa khóa để làm việc này cho tôi.

Quy trình này sẽ gỡ cài đặt phiên bản trước và cài đặt phiên bản mới nhất. Không có bản sao trong các chương trình thêm/xóa.

Hy vọng điều này sẽ hữu ích.

+1

Điều này đã làm cho tôi, Cảm ơn! – 2pietjuh2

+0

Hướng dẫn tuyệt vời! – Matthieu

+0

Có thể cung cấp cho người dùng tùy chọn để thực hiện nâng cấp hoặc cài đặt lại toàn bộ ứng dụng (do đó xóa tất cả tệp cơ sở dữ liệu và cài đặt).Tôi đang sử dụng Cài đặt Shield LE phiên bản miễn phí – androider

3

Câu trả lời của người dùng2321103 là tuyệt vời, việc tạo mục nâng cấp mới trong Đường dẫn nâng cấp là điều quan trọng. Thật không may là tùy chọn này được ẩn đi vì nó là cần thiết để sản xuất những gì hầu hết mọi người sẽ tự nhiên mong đợi là hành vi mặc định bình thường cho một chương trình thiết lập.

Lý do cho câu trả lời mới này là tôi thấy rằng tôi có thể đặt Phiên bản tối đa trong Mục nâng cấp thành số cao hơn là phiên bản hiện tại. Điều này có nghĩa là tôi sẽ không phải nhớ cập nhật điều này cho mỗi bản phát hành mới. Phiên bản hiện tại của tôi là 2.1.8 nên tôi đặt Phiên bản tối đa là 2.1.9999. Trong trường hợp không chắc rằng tôi có thể muốn hành vi khác nhau trong một số phiên bản tương lai tôi có thể lên phiên bản của tôi lên 2,2.x

Dự án thiết lập Microsoft sẽ tự động cập nhật mã sản phẩm bất cứ khi nào bạn thay đổi số phiên bản, nhưng Installshield LE thì không, do đó, cần phải nhớ thực hiện việc này mỗi lần.

Khi trạng thái câu trả lời khác, điều quan trọng là Mục nâng cấp sử dụng mã Nâng cấp từ các phiên bản đã cài đặt trước đó. Tôi đã không cố gắng này, nhưng có lẽ nếu vì một lý do bạn có nhiều hơn một phiên bản trước đó với các mã nâng cấp khác nhau, sau đó bạn có thể tạo một mục nâng cấp riêng biệt cho mỗi.

Tôi không hiểu tại sao bạn không thể chỉ đặt cả Bao gồm phiên bản tối thiểu và Bao gồm phiên bản tối đa thành Không, nhưng điều này dường như không hoạt động. Tôi đã không cố gắng mỗi sự kết hợp của các thông số khác nhau nhưng như đã nêu trong câu trả lời khác các cài đặt sau dường như làm các trick:

  • Min Version: blank
  • Bao gồm Min Version: Có
  • Version Max: > = phiên bản hiện tại
  • Bao gồm Max Version: có

Nó cũng có vẻ là quan trọng không thay đổi Lạng Tìm kiếm Tiêu chí để loại trừ. Tôi cũng đã đặt Bỏ qua việc xóa không thành Có. Tôi có các Quốc gia tính năng di chuyển được đặt thành Không, nhưng tôi không nghĩ rằng điều này có liên quan đến ấn bản LE.

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