2010-03-17 33 views
6

Sử dụng trình cài đặt Inno, chúng tôi phân phối VC++ redistributable bằng ứng dụng của mình để chúng tôi có thể chạy tự động. Chúng tôi đã tìm thấy rằng chạy nó trên một hệ thống mà nó đã được cài đặt yêu cầu chúng tôi sửa chữa/hoàn tác cài đặt mà sẽ gây nhầm lẫn cho người dùng.Phân phối VC++ Redist ... chạy trình cài đặt khi đã được cài đặt gây ra sự cố

Có cách nào khác không? Có lẽ một lá cờ trên trình cài đặt hay cái gì đó?

Cảm ơn.

Trả lời

4

Thử/q cờ http://support.microsoft.com/kb/227091 (giả sử bạn đang cài đặt nó thông qua kêu gọi msiexec.exe về phân phối của họ)

+1

Chúng tôi đang cài đặt vcredist_x86.exe từ đây: http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=vi. Câu trả lời của bạn vẫn được áp dụng? –

+2

Nếu/q không thực hiện, hãy thử/Hỏi: a /c:"msiexec.exe/qb/i vcredist.msi " Xem http://jrsoftware.innosetup.free-usenet.eu/Microsoft-Visual -C-2008-Redistributable-Files-via-Inno-setup_T46582950_S1 –

1

This thread giải quyết vấn đề của tôi:

(lấy từ những nhận xét trong câu trả lời khác)

3

Đối với một số lý do không ai trong số các câu trả lời ở trên làm việc cho tôi. Điều này đã, tuy nhiên:

[Run] 
Filename: {tmp}\vcredist_x86.exe; Parameters: "/passive /Q:a /c:""msiexec /qb /i vcredist.msi"" "; StatusMsg: Installing 2010 RunTime... 
[Files] 
Source: vendor/vcredist_x86.exe; DestDir: {tmp} 

tôi đã gợi ý cho nó bằng cách chạy vcredist_x86.exe/?, như đã nêu ở dưới cùng của chủ đề này: http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/a8d4d5b4-7927-4c86-95e8-3cd8b3018ae8/

Là một lưu ý hơn nữa, một lựa chọn tốt để phân phối lại là chỉ liên kết tĩnh chống lại (phiên bản của bạn) các msvcrt thấy ý kiến ​​trong http://blogs.msdn.com/b/vcblog/archive/2007/10/12/how-to-redistribute-the-visual-c-libraries-with-your-application.aspx (mặc dù MS rõ ràng cau mày về loại liên kết tĩnh, ít nhất bạn sẽ không cần một dll).

Distributing the Visual C++ Runtime Libraries (MSVCRT) cũng có thể hữu ích. Cũng lưu ý rằng nếu bạn có thể đảm bảo bạn sẽ có quyền kiểm soát, bạn chỉ có thể bao gồm msvcr100.dll trong cùng thư mục với tệp thực thi của bạn và điều đó cũng có thể hoạt động, mặc dù không phải là giải pháp rất chuẩn.

+0

sẽ không đơn giản sử dụng 'vcredist_x86.exe/q/norestart' là đủ? (đó là '/ quiet/norestart' cho VS2012 btw) – stijn

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