プロが教える店舗&オフィスのセキュリティ対策術

VS2005 C++ ExpressでWindowsフォームアプリケーションをC++/CLIで作成しています。
(Standardを買う予定なのですが、まだ買いにいけていないのでExpressのままです)
OSはWinXP Pro-SP2です。

リリースビルドしたexeファイルを、当該PCでは実行可能なのですが、
exeを他のPCにコピーして実行すると、
「このアプリケーションの構成が正しくないため、アプリケーションを開始できませんでした。アプリケーションを再度インストールすることにより問題が解決する場合があります」
というダイアログが表示され、終了してしまいます。

検索してみたところ、いくつか対処法があったのですが、試した中では解決できませんでした。

◎ソリューションのプロパで、[構成プロパティ]-[C/C++]-[コード生成]で、ランタイムライブラリを「マルチスレッドDLL/MD」を「マルチスレッド/MT」に変更
   →ビルド時に「/MTと/clr:pureは同時に使用できません」エラー
   →/clr:pureを/clrのみにしても同じ。
   →「共通言語ランタイムサポートを使用しない」にすると、
     「マネージターゲットコードには/clrが必要」でビルドエラー
   →→→/MD /clr:pureに戻しました

◎exeと同じディレクトリにmanifestを作成
     ▽ファイル名はMicrosoft.VC80.CRT.manifest
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
type="win32"
name="Microsoft.VC80.CRT"
version="8.0.50727.762"
processorArchitecture="x86" >
</assemblyIdentity>
<file name="msvcr80.dll"/>
</assembly>

versionについては、VC++Expのバージョン情報で表示されるものに変更。
   →同じように、exe実行時にエラー発生、同じダイアログ
   →msvcr80.dllを同じディレクトリに置いても同じ

◎Platform SDKのDependency Walkerでexeをチェック
   →MSJAVA.DLLが見つからないという赤いメッセージが出る。
   →ファイル名をPC内で検索したが、見つからず。
     (VS2005ExpがインストールされたPCも、別のXPが入ったPCも)
   →試しに、vectorで拾った実行OKなDLL不要exeアプリをD-Walkerに
     かけてみたら、同じようにMSJAVA.DLLが見つからないという
     メッセージが表示された。 でも当然このexeはどのPCでも実行OK。

◎新しくプロジェクトを作成。 ボタンをひとつ配置し、
 イベント発生の関数のみ作成。 ただし中身はカラ。
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { }

   →デバッグビルドもリリースビルドも問題なし。 でもexeを
     別のPCにコピーすると同じダイアログが出てエラー終了

http://support.microsoft.com/kb/814496/jaに載っている方法:
  Visual Studio .NET プロジェクトで app.config ファイルの <xml> を
  UTF-8 に変更し、UTF-8 エンコードで app.config ファイルを保存します。

   →app.configファイルが検索しても見つからず


これは何が悪いのでしょうか?
ライブラリ・ランタイム関連であろうということはわかるのですが、
解決方法がわかりません。
よろしくお願いします。

A 回答 (1件)

対象のPCですが.NET Framework Version 2.0


の実行環境ははいっているのでしょうか?
まず対象のPCに以下の2つのパッケージをインストールして試してください。

「Microsoft .NET Framework Version 2.0 再頒布可能パッケージ (x86)」
http://www.microsoft.com/downloads/details.aspx? …

「Microsoft Visual C++ 2005 再頒布可能パッケージ (x86)」
http://www.microsoft.com/downloads/details.aspx? …


>UTF-8 に変更し、UTF-8 エンコードで app.config ファイルを保存します。
http://support.microsoft.com/kb/814496/ja
ですが対象のアプリケーションが
Microsoft Visual Studio .NET 2002
になっており今回は関係ないと思います。
(最終更新日も2003年6月19日ですので)

この回答への補足

ご回答ありがとうございます。

「Microsoft .NET Framework Version 2.0 再頒布可能パッケージ (x86)」
「Microsoft Visual C++ 2005 再頒布可能パッケージ (x86)」

この二つはすでにインストールしてありましたが、ダメでした。
念のために.NET Framework を修復インストールもしてみましたが同じでした。

補足日時:2007/03/28 18:59
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!