Side-by-Sideとは
issue:VC++2008で作成した64bitアプリケーションの起動に失敗する
Msg:このアプリケーションのサイドバイサイド構成が正しくないため、アプリケーションを開始できませんでした。詳細については、アプリケーションのイベントログを参照するか、コマンドラインツールsxstrace.exeを使用してください。
原因:不明
対処:Visual Studio 2008 SP1を入れたら改善された
SP1インストール時にx64のランタイムも一緒に入れたからだと思われる
以下、お勉強
分離アプリケーションとSide-by-Sideアセンブリ (Isolated Applications and Side-by-side Assemblies)とは、Windows XPで導入された複数バージョンのソフトウェアコンポーネントの衝突を避けるための仕組みである。システム上に複数バージョンのコンポーネントを共存させ、アプリケーションごとに適切なバージョンのコンポーネントを選択可能にすることで、DLL地獄の解消を意図している。.NET Frameworkにおけるバージョン管理の仕組みをWindowsネイティブに持ち込んだものという見方もできる。
簡単にいえば、マニフェストが、「HeyYou,おいらを実行したいときはこのDLLを参照してくれよな!」とOSに知らせる仕組みらしい。
で、そのDLLとは何か。この場合はランタイムと呼ばれる実行モジュールだったようだ。その昔、VB6ランタイムを入れさせられた。なつかしい。
VC++2008ランタイムは、VC++2008で開発されたアプリケーションを実行するのに必要になってくる。なぜか私は途中まで.NETと混同していて、なぜ単純なhello worldなのに.NETが絡んでくるのだろうと思っていたのは余談。