Windows

「サイドバイサイド構成が正しくない」エラーでアプリが起動できない対処方法

*記事内に商品プロモーションを含む場合があります

Windowsのアプリケーション起動時に、「サイドバイサイド構成が正しくないエラー」が出る場合の対処方法を紹介します。

Visual Studioでデバッグ方法(初心者向け基本)を動画で紹介しています。

サイドバイサイド構成が正しくないエラー

Windowsでアプリケーション実行時に以下のエラーが出て起動できない場合があります

「このアプリケーションのサイド バイ サイド構成が正しくないため、アプリケーションを開始できませんでした。」

以下の問題の可能性が高いです。

・ファイルが壊れている

・ランタイムライブラリがPCにインストールされていない

ランタイムライブラリとは、アプリケーション(プログラム)を動作させるために必要なファイルです。

対処方法

原因は、以下の2つが考えられますので、それぞれの対処方法を説明します。

・アプリケーションが使っているファイルが破損している

・インストールしたアプリケーションが古くて、Visual C++ランタイムが古い

1.アプリケーションを再インストールする

アプリの最新版のインストーラーを入手して再インストールを試してみてください。

一旦、アンインストールして古いファイルが残っていない状態で、再インストールしたほうが確実でしょう。

2.Microsoft Visual C++ランタイムを再インストール

Microsoft Visual C++ランタイムを再インストールします。

現在、パソコンにインストールされているMicrosoft Visual C++ランタイムを再インストールすることでエラーが解決する可能性があります。

インストールされているランタイムは、「アプリと機能」画面で確認できます。

どれを入れたら分からない場合は、余分に入っていても実害はないので、足りないランタイムライブラリをインストールします。

3.システムファイルチェッカーツール(SFC)で修復

システムファイルチェッカーツール(SFC)で、壊れたシステムファイルを修復します。

Windowsのシステムファイルが破損していたり欠損していることが原因で、アプリケーション起動時にサイドバイサイド構成エラーが発生することがあります。

「コマンドプロンプト」を”管理者として実行”し、以下のコマンドを実行します。

DISM.exe /Online /Cleanup-image /Restorehealth

4.Windows Updateを実行する

Windows Updateを実行します。

Windowsのシステムに問題があることが原因で、アプリケーションのサイドバイサイド構成エラーが発生する場合があります。

Windows Updateを実行することで問題の箇所が修復されることがあります。

そのため、利用可能なWindows Updateがあればアップデートを実行してみてください。

ランタイムライブラリについて

インストールしているランタイムの確認方法

「設定」-[アプリと機能]で 「visual」と入力します。

「Microsoft Visual C++ 20xx 」と表示されているものがランタイムライブラリです。

Visual C++ ランタイム一覧

Visual C++ ランタイム一覧 公式サイト

・Visual Studio 2005 (Visual C++ 8)  未サポート
・Visual Studio 2008 (Visual C++ 9)  未サポート
・Visual Studio 2010 (Visual C++ 10) 未サポート
・Visual Studio 2012 (Visual C++ 11)
・Visual Studio 2013 (Visual C++ 12)
・Visual Studio 2015-2022

配布はされていますが、10年以上前のランタイムは未サポートですね。

プログラム開発者向け

イベントログを見る

イベントログに情報がありますが、よくわからない情報です。

[Windowsログ] – [Application] でエラーを確認。

“C:\src\test1\bin\x64\Debug\test1.exe” のアクティブ化コンテキストの生成に失敗しました。 従属アセンブリ Microsoft.VC80.DebugCRT,processorArchitecture=”amd64″,publicKeyToken=”1fc8b3b9a1e18e3b”,type=”win32″,version=”8.0.50727.762″ が見つかりませんでした。
詳細な診断を行うには sxstrace.exe を実行してください。

VC80.DebugCRT という情報から、Visual C++ 8.0のデバッグ用ライブラリがないということ。

SxsTraceを使う

エラーメッセージに「sxstrace.exe を使用してください」と書かれているので使ってみました。

C:\src\test1\bin\x64\Debug\test1.exe
このアプリケーションのサイド バイ サイド構成が正しくないため、アプリケーションを開始できませんでした。詳細については、アプリケーションのイベント ログを参照するか、コマンド ラインツール sxstrace.exe を使用してください。

(1)管理者権限でコマンドプロンプトを起動。

(2) sxstrace を Trace オプション付きで実行。

sxstrace Trace -logfile:C:\temp\trace\trace.log

バイナリファイルが生成される。
このファイルはテキスト形式でないので、テキストエディタでは見ることができない。

(3)アプリ実行。
問題のアプリケーションを実行するとエラーメッセージが表示され、[OK]ボタンを押して終了する。

(4)SxsTrace.exeを Parse オプション付で実行する。(実行は1行で)
変換しないとエディタで見ることができない。

sxsTrace Parse -logfile:C:\temp\trace\trace.log -outfile:C:\temp\trace\trace.txt

(5)テキストエディタで出力ファイルを開く

SxsTraceの出力の見方

情報: マニフェスト ファイル C:\test1\x64\Debug\test1.exe を解析。
情報: 参照: Microsoft.VC80.DebugCRT,processorArchitecture=”amd64″,type=”win32″,version=”8.0.50727.762″
情報: 参照 Microsoft.VC80.DebugCRT,processorArchitecture=”amd64″,type=”win32″,version=”8.0.50727.762″ を解決。
情報: マニフェストを C:\WINDOWS\assembly\GAC_64\Microsoft.VC80.DebugCRT\8.0.50727.762__xx\Microsoft.VC80.DebugCRT.DLL で調査。
情報: マニフェストを C:\test1\x64\Debug\Microsoft.VC80.DebugCRT.DLL で調査。
情報: マニフェストを C:\test1\x64\Debug\Microsoft.VC80.DebugCRT\Microsoft.VC80.DebugCRT.DLL で調査。
エラー: 参照 Microsoft.VC80.DebugCRT,processorArchitecture=”amd64″,type=”win32″,version=”8.0.50727.762″ を解決できません。

イベント ログ、及びSxsTrace コマンドの結果より、
・VC80.DebugCRTDLLが存在していない
・DLLのプロセッサ アーキテクチャはamd64(x64)である
・DLLのバージョンは、8.0

★対処法:Visual C++ 8.0 (VS 2005) 再配布をインストールする。

ソースがあれば再コンパイルする

Visual Studioなどで開発時に稀に遭遇することがあります。

いろいろなライブラリを使っていてビルド環境が混在している場合などに発生します。

古いVisual C++(Visual Studio)でコンパイルされたスタティックライブラリをリンクすると発生します。

今回のsxstraceの結果は、このケースでした。

デバッグ版のライブラリとリンクされていたので、ソースファイルを入手してVisual Studio 2019でリビルドしました。

あとがき

Windowsは歴史が長く、プログラムの開発環境も変わってきたので、いろいろ発生しますね。

こういうのがあるから、Javaが生まれた1つの理由ですね。
「一度書いたコードはJVMを通してどんなコンピュータでも使えるため、プラットフォームを問わず実行可能」

最後に(Windows VPSを紹介)

最後にWindowsアプリの開発者や利用者に便利なサービスを紹介します。

クラウド上のWindows Serverがリーズナブルな価格で即日利用可能なVPSサービスが存在します。動作検証などで1ヶ月だけの利用などの用途にも使えます。


物理サーバマシンを手配したことがある方は経験があると思いますが、

物理サーバを用意する場合は、メーカーにサーバマシンの見積りを取って、手配をして搬入して設置し、Windowsをインストールしてネットワークなどを設定してやっと使えるようになります。(どんなに早くても週単位で時間がかかります)

「ConoHa」と「さくらVPS」では、契約アカウントの作成からWindows Serverが使えるまで、30分かかりません。
(他の会社のVPSは、次の営業日だったりと開始まで時間がかかります。)

ConoHa の VPSは時間課金をサポートしているので、2、3日だけ使うという用途でも利用可能です。(4時間だけという使い方もできます)

私は記事を書くための調査や動作確認にConoHaのVPSを使っています。ローカルのPCにいろいろソフトをインストールするとWindowsが不調になるので。

Windows VPSの魅力とは?詳細な使い方とおすすめプラン選びを紹介!VPS Windows Serverは超便利クラウド上でWindowsやMS-officeが使える「Windows VPSサービス」があります。 Windows VPSサービ...
ConoHa for Windows Serverのプランを体験!2GB/4GB/8GBの選び方と注意点ConoHa for Windows Server を使えば、自宅の古いWindows PCを単なる操作用端末にして、サーバ側(Wind...

Kindle出版しました

Visual Studio デバッグ関連のブログ記事を再編集してアマゾンのKindle本で提供しています。

Kindle Unlimited会員は無料(0円)で読むことができます。
Visual Studioの役に立つ情報も追加しているので、気になる方は以下の記事もご覧ください。

IT技術者がKindle出版で技術書を副業で出版!収益や難易度は?(Amazonで販売可能)近年、副業を始めるIT技術者が増えています。その中でも、自身の知識や経験を活かせる「情報発信」は、注目度の高い副業の一つです。 K...

Kindle出版で技術本を出版するノウハウも記載しています。