DOBON.NET DOBON.NETプログラミング掲示板過去ログ

サイドバイサイド構成が正しくありません

環境/言語:[Windows XP SP3 / Visual Studio 2005 SP1 / Visual C++ CLR アプリケーション]
分類:[.NET]

今回は、プログラム上の質問というよりもVisual Studio 2005で作成したソフトについてです。

開発マシンはWindows XP SP3で、Visual Studio 2005 SP1がインストールされています。
これでソフトウェアをビルドして、開発マシンであるXPでの動作確認はできます。

しかし、Windows Vista SP2 が搭載されたパソコン(Visual Studioはインストールされていません)や、
友達のWindows XP SP3の Visual Studio 2005 (SPはなし)がインストールされているパソコンでは動作しませんでした。(下と同じ状況)

何日か前まではWindows Vista SP2のパソコンでも動作していたのですが、
今まで動作していたソフトウェアが画像のように「サイドバイサイド構成が正しくありません」と表示され、動作しません。

長くなってしまいましたが、わかる方、回答をお願いします。
添付ファイル: 1274101276.jpg (23 KB)
Visual C++ 2005 再頒布可能パッケージをインストールしてもらってください。
なお、再頒布可能パッケージには SP の有無、ATL 脆弱性修正パッチの有無などでいくつかバージョンがあります。

一例:
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=766a6af7-ec73-40ff-b072-9112bab119c2

なお、Microsoft のダウンロードページから入手したバイナリは明示的な許諾がない限り、再頒布ができないものとされています。
下部の使用条件のリンクもご確認ください。
2010/05/18(Tue) 17:48:03 編集(投稿者)

2年ぐらい前に作ったソフトウェアは動くのですが、
今作ったソフトは動きません。
これは何が原因なのでしょうか?
わざわざユーザーがそのようなパッケージをインストールしなくても動くようにするのにはどうすればいいのでしょうか?
質問ばかりで申し訳ありませんが、回答をお願いします。
■No26838に返信(masaさんの記事)
> 2年ぐらい前に作ったソフトウェアは動くのですが、
> 今作ったソフトは動きません。
> これは何が原因なのでしょうか?

そのときにビルドしたときのランタイムのバージョンと、今インストールされているランタイムのバージョンが異なるからではないでしょうか。
Visual C++ 2005 のランタイムは求められているバージョンか、それよりも新しいバージョンが入っていないと動かないように設計されています。(サイドバイサイド)

最近は、ATL の脆弱性修正などで、Visual C++ 2005 に対して Microsoft Update で更新プログラムが配信され、それが適用された環境では新しいバージョンのランタイムを要求するバイナリができあがったりします。


> わざわざユーザーがそのようなパッケージをインストールしなくても動くようにするのにはどうすればいいのでしょうか?

こういうことをすれば、別途ランタイムをインストールしなくても済みます。
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200606/06060025.txt

ただし、ランタイムに相当するものが exe や dll の中に含まれるようになりますので、肥大化します。
Azuleanさん、回答ありがとうございました。
教えていただいた方法では解決できませんでしたが、
Visual Studio 2005 の SP1 をアンインストールすることで、
とりあえず解決しました。

ありがとうございました。
> とりあえず解決しました。

解決ではなく
 エラーメッセージ表示がなくなった
だけではないのですか?
動作するようになったので、解決です。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板