8

Tôi có một cài đặt InstallShield sử dụng hành động tùy chỉnh phụ thuộc vào Visual C++ Runtime 8.0 sp1. Trong quá khứ, tôi đã có thể cài đặt thời gian chạy bằng cách sử dụng mô đun hợp nhất được cung cấp bởi Microsoft với Visual Studio. Dựa trên cách Visual C++ Runtime 8.0 sp1 side-by-side cài đặt hoạt động trên Vista, thời gian chạy không thể được sử dụng cho đến khi chuỗi cam kết của tiến trình cài đặt. Điều này có nghĩa là tôi phải di chuyển việc thực hiện các hành động tùy chỉnh của tôi đến chuỗi cam kết (không mong muốn, vì cài đặt không thể được cuộn lại trong chuỗi này nếu có sự cố) hoặc cài đặt Visual C++ Runtime trước khi cài đặt của tôi sử dụng điều kiện tiên quyết InstallShield.Làm thế nào tôi có thể lập trình xác định nếu Visual C++ Runtime 8.0 được cài đặt?

Tôi muốn cài đặt Thời gian chạy Visual C++ làm điều kiện tiên quyết, nhưng điều kiện tiên quyết cho điều này không được InstallShield cung cấp, vì vậy tôi phải tự viết. Tôi đã có thể tìm ra cách cấu hình điều kiện tiên quyết để cài đặt thời gian chạy, nhưng tôi không biết làm thế nào để xác định xem nó đã được cài đặt chưa. Có một khóa registry hoặc phiên bản tập tin tôi có thể kiểm tra để xác định điều này?

+0

Đối với bất kỳ ai cố gắng phát hiện thời gian chạy Visual C++ 2010, bạn có thể tìm thấy hướng dẫn tốt tại đây: http://blogs.msdn.com/b/astebner/archive/2010/05/05/10008146.aspx – ephere

Trả lời

10

Tôi đã tìm thấy các bài đăng trên blog mô tả việc phát hiện Visual C++ Runtime 8.0Visual C++ Runtime 8.1. Về cơ bản, bạn có thể sử dụng Giao diện Tự động hóa của MSI để tìm mã sản phẩm cho từng thời gian chạy.

Bạn cũng có thể tìm kiếm các HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall \ [ProductCode] nơi [ProductCode] là mã sản phẩm cho thời gian chạy bạn đang cố gắng để phát hiện (ví dụ. {7299052b- 02a4-4627-81f2-1818da5d550d} là mã sản phẩm cho phiên bản x86 của thời gian chạy 8,0 giây).

Những phương pháp này chỉ hoạt động để phát hiện xem gói cài đặt có thể phân phối lại được cài đặt hay không; có thể là thời gian chạy được cài đặt ngay cả khi các phương pháp này không cho biết (ví dụ: nếu nó được cài đặt làm mô-đun hợp nhất thay vì sử dụng redistributable), nhưng nó không làm hại bất cứ thứ gì để cài đặt gói redistributable trong trường hợp này .

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