こんにちは、Japan Developer Support Core チームの上原です。
今回は、Visual C++ 再頒布パッケージ(Redistributable) をコマンドでインストールする方法、サイレント インストールについてご案内します。
はじめに
Visual C++ ランタイムは多くのアプリケーションで利用されていますが、Windows OS には標準で含まれていません。そのため、アプリケーション利用時に「Visual C++ 再頒布パッケージ」を別途インストールする必要が生じる場合があります。
Visual C++ 再頒布可能パッケージは、ダウンロードサイト から入手が可能ですので、エクスプローラーなどから GUI 上でインストールする方法と、コマンドプロンプトなどからコマンドを実行する形でインストールする方法があります。
本記事では、コマンドからのサイレント インストール方法と注意点を解説します。
※本記事は Visual C++ 2015-2022 を前提としています。Visual C++ 2013 以前は既にサポートが終了していますが、基本的には同様です。
サイレント インストール方法
Visual C++ 再頒布パッケージは、x86/x64/ARM64 など複数のアーキテクチャ向けに提供されています。
ここでは x86 版(vcredist_x86.exe)を例に説明しますが、他のアーキテクチャも同様です。
サイレントインストールは、コマンドに /quiet
(または /q
)を付けて実行します。
さらに /norestart
を付けると、インストールを完了するためにシステムの再起動が必要な場合であっても、インストール後に自動で再起動されることはありません。
例:
1 | vcredist_x86.exe /q /norestart |
インストール時のシステム再起動
Visual C++ 再頒布パッケージのインストール時、すでに古いバージョンがインストールされており、更新対象のファイルが使用中で直ちに更新できない、といった場合には、インストールを完了するためにシステム再起動が必要になることがあります。
サイレントインストール時に /norestart
オプションを付けると、再起動は自動で行われず、インストーラーは終了コード 3010 を返します。/norestart
を付けない場合は、自動的にシステムの再起動を試み、他のアプリケーションにブロックされる等の状況でなければ実際に再起動が行われます。
このように再起動が必要かどうかは、インストール時のシステムの状態によって決まるため、事前に確実に判定することはできません。しかしながら、サイレント インストールを利用する多くのシナリオでは、意図せぬ再起動を避けるため、/quiet /norestart
の併用が推奨されます。
なお、エラーコード 3010 が返る場合を含め、インストールの完了にシステムの再起動が必要な場合は、あくまでもインストール処理が完全に終わっていない一時的な状態となっておりますので、可能な限り速やかにシステムを再起動してください。
このような背景から、Visual C++ 再頒布パッケージのインストールを計画される際には、実際に再起動が必要となるかは事前に判断が難しいものの、再起動が必要となる前提で作業計画を立てていただくことを推奨しております。
エラー処理
サイレント インストールでは UI が表示されないため、インストーラー プロセスの終了コードで結果を判断します。
主な終了コードは以下の通りです。
- 0(ERROR_SUCCESS):インストール成功
- 1638(ERROR_PRODUCT_VERSION):別バージョンが既にインストール済み
- 3010(ERROR_SUCCESS_REBOOT_REQUIRED):再起動が必要
これ以外のコードが返された場合は、何らかの理由でインストールが失敗したと判断できます。
その他の実行方法
インストール時のログを取得したい場合は、/log
(または /l
)オプションで出力先を指定できます。
例:
1 | vcredist_x86.exe /q /norestart /log C:\logs\vcredist.log |
また、コマンドから修復(/repair)やアンインストール(/uninstall)も可能ですので、詳細は 過去のアーカイブ記事 をご参照ください。
本ブログの内容は弊社の公式見解として保証されるものではなく、開発・運用時の参考情報としてご活用いただくことを目的としています。もし公式な見解が必要な場合は、弊社ドキュメント (https://docs.microsoft.com や https://support.microsoft.com) をご参照いただくか、もしくは私共サポートまでお問い合わせください。