2011-10-16 25 views
22

Tôi đã tạo trình cài đặt với Visual Studio 2010 Phiên bản 10.0.40.219.1 SP1 Rel. Ứng dụng của tôi được xây dựng/biên dịch cho x86 và yêu cầu thư viện thời gian chạy VC++. Do đó, dự án thiết lập được cấu hình với thư viện thời gian chạy VC++ như một điều kiện tiên quyết.Visual C++ 2010 Thư viện Thời gian chạy bắt đầu xuất hiện trên trình cài đặt VS 2010 được tạo

Mỗi khi tôi chạy trình cài đặt, tôi nhận được cửa sổ bật lên "Các thành phần sau sẽ được cài đặt trên máy của bạn". "Thư viện thời gian chạy Visual C++ 2010 (x86)". Lần đầu tiên nó được cài đặt như mong đợi. Lần thứ hai và sau đó hỏi tôi có sửa hay tháo VC++ 2010.

Cửa sổ bật lên này chỉ được hiển thị một lần, lần đầu tiên phát hiện ra VC++ redistributable chưa được cài đặt.

Có ai nhìn thấy điều này không? Bất cứ ai biết làm thế nào tôi có thể sửa lỗi này?

Giải pháp:

Câu trả lời tôi chấp nhận cho tôi những gì tôi cần thiết để giải quyết vấn đề. Dưới đây là các chi tiết về những gì tôi đã làm để khắc phục điều này, đó là rất đơn giản trong thực tế. Tôi chỉnh sửa các file:

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\vcredist_x86\product.xml 

Trong tập tin này, bạn sẽ tìm thấy những điều sau đây:

<InstallChecks> 
    <MsiProductCheck Property="VCRedistInstalled" Product="{6EE91C1A-A2E7-38CD-AEBB-3B900A4D8868}"/> 
</InstallChecks> 

Trên đây chứa mã sản phẩm không chính xác. Thay thế trên với mã sản phẩm chính xác cho các C trực quan ++ 2010 SP1 Redistributable như sau:

<InstallChecks> 
    <MsiProductCheck Property="VCRedistInstalled" Product="{F0C3E5D1-1ADE-321E-8167-68EF0DE699A5}"/> 
</InstallChecks> 

Liên kết here cho thấy các mã sản phẩm đúng cho VC++ khác nhau 2010 Redistributables.

+0

bản sao có thể có của [Điều kiện tiên quyết cài đặt Setup.exe ngay cả khi chúng được cài đặt sẵn] (http://stackoverflow.com/questions/4797057/setup-exe-installing-prerequisites-even-if-they-are-preinstalled) – wimh

+2

Đúng, nó là một bản sao, nhưng nó không được trả lời. Bài đăng này, bây giờ có câu trả lời và các bước cần thiết để khắc phục sự cố. – Elan

Trả lời

14

Điều này xảy ra vì các tiêu chí phát hiện điều kiện tiên quyết không chính xác.

Giải pháp là tạo điều kiện tiên quyết tùy chỉnh của riêng bạn với tiêu chí chính xác. Có lẽ bài viết này sẽ giúp: http://blogs.msdn.com/b/astebner/archive/2010/05/05/10008146.aspx

Dự án thiết lập Visual Studio không hỗ trợ điều này. Nhưng nó có thể được thực hiện bằng cách tạo thủ công các biểu hiện được yêu cầu.

Bạn có thể tìm ra cấu trúc biểu hiện ở đây: http://msdn.microsoft.com/en-us/library/ms229223(VS.80).aspx

Những biểu hiện có thể được tạo ra tự động với công cụ Bootstrapper Manifest Generator.

Sau khi tạo ra các biểu hiện gói, bạn có thể thêm tất cả những tập tin này (bao gồm cả gói) trong một thư mục riêng biệt trong thư mục trực quan điều kiện tiên quyết Studio, ví dụ:

C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\ 

Sau đó bạn có thể chọn các điều kiện tiên quyết trong của bạn thiết lập trang thuộc tính dự án.

+0

Tôi đã sao chép thư mục vcredist_x86 vào vcredist_x86_fixed và đổi tên thành một chuỗi trong.Tệp xml của thư mục "en" mà tôi nghĩ là văn bản được hiển thị trong hộp thoại Điều kiện tiên quyết, nhưng không có mục nhập bổ sung nào trong hộp thoại đó. Tôi đã khởi động lại VS. Tôi có phải làm điều gì đó ngoài việc có được gói mới để hiển thị trong hộp thoại điều kiện tiên quyết không? – angularsen

+0

Đảm bảo rằng điều kiện tiên quyết mới của bạn sử dụng tên tùy chỉnh. Hoặc ít nhất là xóa thư mục tiên quyết ban đầu. Điều kiện tiên quyết với tên trùng lặp không được hỗ trợ. –

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