Microsoft Visual C++ Runtime LibraryからRuntime Error!が出たときの対処方法

f:id:Takyu:20171001084945j:plain

タイトル通りですが、Windowsを使っていると、アプリケーションによってはこのようなエラーが出ることがあります。

私の場合は、Meta2というHead Mount Displayのチュートリアルアプリケーションを起動したときに、このエラーが出ました。

ご参考;Meta2について

magicbullet.hatenablog.jp


今回は、このエラーが出たときの解決方法を調査して整理しました。



=====

目次

1. Visual C++ Runtimeとは何か?

2. Runtime Errorとは?

3. 解決方法

3-1. 該当するruntimeを追加インストールする
3-2. 環境変数の順番を変更する

4. 終わりに

=====

1. Visual C++ Runtimeとは何か?

Visual C++ Runtimeとは、Visual C++という環境で開発されたソフトウェアを動かすためのライブラリです。たとえば、Visual C++ 2015という環境で作られたソフトウェアを動かすには、「Visual C++ 2015 再頒布可能パッケージ」というものが必要になります。

実際、Visual C++ Runtimeを必要とするソフトウェアは多いようで、PCの設定/アプリを開いてみると、Visual C++ 20XXが入っているのが確認できます。

f:id:Takyu:20171016065159p:plain


なお、Visual C++のRuntimeは2015、2017のような表記だけでなく、10.0.30319のような表記があります。インストールされた項目をクリックすると、このように詳細が表示されます。

f:id:Takyu:20171016065333p:plain


通常、何らかのソフトウェアをインストールすると、それに紐づいたランタイムが自動的にインストールされます。そのため、ユーザーの立場ではエラーが出ない限り、基本的に気にする必要はありません。


エラーが出ると自分で直すこともあります。その場合は、Visual C++ Runtimeの性質というか、下記に注意しておく必要があります。

(1) RuntimeはMicrosoft のダウンロードセンターで提供されている。

こちらです。

https://support.microsoft.com/ja-jp/help/2977003/the-latest-supported-visual-c-downloads


(2) バージョンによっては、Microsoft のダウンロードセンターに提供されていないことがある。色々とリンクをたどると見つかることがある

理由はよくわかりませんが、、


(3) マイナーバージョンまで同じなのに、言語によってRuntimeが異なることがある

例えば英語のアプリケーションで問題が発生した場合、英語版のRuntimeが必要の可能性があります。



2. Runtime Errorとは?

Runtime Errorとは、対応するRuntimeが見つからないという意味です。

今回の私の場合は特殊だったためか表示されませんでしたが、通常はこの赤枠の中に、どこでエラーになったかのファイルパスが表示されるようです。

f:id:Takyu:20171016223134j:plain


3. 解決方法

3-1. 該当するruntimeを追加インストールする

エラー内容やパスから自分で調べるか、ソフトウェアの開発元に問い合わせて、該当するRuntimeをインストールします。

3-2. 環境変数の順番を変更する

今回のエラーを開発元に問い合わせた時に提示された解決方法です。確実性は不明のようですが、環境変数のPATHに書かれた順番を上位にすることで、正しく動く場合があるようです。

環境変数画面の出力方法です。

f:id:Takyu:20171016225854p:plain


このような画面がでるので、システム環境変数側のPathをクリックします。(画像の中で選択されているところです)

f:id:Takyu:20171016230246p:plain


このような画面が出ます。1行ずつ順番を変えることができるので、目的のパスを上位に移動させます。

f:id:Takyu:20171016230429p:plain

3-3. OSをクリーンインストールする

これは最後の手段ですが、、

結局、私の環境ではこの方法で解決しました。今回のRuntime Errorが出たPCは、Windows8.1からWindows10にアップグレードしたPCです。

Meta社のエンジニアによると、まれにWindows8.1から10に上げたPCで、Runtime同士がコンフリクトすることがあるらしい、とのことです。

私の場合、入手できるかぎりのあらゆるRuntimeを入れてもだめだったのと、クリーンインストールをするだけで何も問題なくうまくいったので、やはり8.1からのアップグレードが原因のような気がします。


ちなみに、Windows10のクリーンインストールは、こちらを参考にさせていただきました。

pcfan.121ware.com


4. 終わりに


原因は不明のままですが、ひとまずMeta2が動いて良かったです。

本来、ユーザーの立場ではRuntimeエラーは気にすることがないはずなのですが、Visual C++ Runtime Error で調べると、そこそこ検索結果に引っかかります。

今回の情報が誰かの役に立てば幸いです。