2012-01-24 16 views
5

私は、64ビットOSのWindows 7の究極のマシンVS2008と64ビットアドオンで作業しています。VS2008での64ビットデバッグビルドのサイドバイサイド設定エラー

64ビット、デバッグ、リリースの両方の設定でプロジェクトを正常に構築できました(32 &)。 64ビットデバッグが起動していません。

Unable to Start program xxx This application has failed to start because application configuration is incorrect. Review the manifest file for possible errors. Reinstalling the application may fix this problem. For more retails see application event log.

私は依存関係ウォーカーを実行しました。 redistibutableパスCから :\プログラムファイル(x86の)\のMicrosoft Visual Studioの9.0 \ VC \ REDIST \ Debug_NonRedist \ AMD64用の\ Microsoft.VC90.DebugCRT 私は Microsoft.VC90.DebugCRT.manifest msvcm90d msvcp90d msvcr90d を追加しましたMicrosoftソリューションのbin \ debugフォルダにあるMicrosoft.VC90.DebugOpenMP vcomp90d.sll

最後に、歩行者が任意の黄色のマーク(ファイルがありません)左を持っていませんでし依存関係が、それでもそれは次のようにエラーを与えた:

Error: At least one required implicit or forwarded dependency was not found. Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module. Error: Modules with different CPU types were found. Error: The Side-by-Side configuration information in "e:\xyz.EXE" contains errors. The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.exe tool for more detail (14001).

32ビットのマニフェストは言う:64ビットのデバッグ一方

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> 
    <security> 
     <requestedPrivileges> 
     <requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel> 
     </requestedPrivileges> 
    </security> 
    </trustInfo> 
    <dependency> 
    <dependentAssembly> 
     <assemblyIdentity type="win32" name="Microsoft.VC90.DebugCRT" version="9.0.21022.8" **processorArchitecture="x86"** publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity> 
    </dependentAssembly> 
    </dependency> 
</assembly> 

マニフェストは:

<dependency> 
    <dependentAssembly> 
     <assemblyIdentity type="win32" name="Microsoft.VC90.DebugCRT" version="9.0.21022.8" processorArchitecture="amd64" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity> 
    </dependentAssembly> 
    </dependency> 

私が理解していないのは、なぜデバッグ32ビットのビルドru nは成功しましたか?

私はすでに多くの質問をチェックしていますが、実現可能な解決策は見つかっていません。

+0

重複はしませんが、関連性がありますか?これがまったく役に立ちますかどうか分かりません:http://stackoverflow.com/questions/3803825/vc-crt-redist-problem –

+0

ビルドしたマシンとは異なるマシンでビルドを実行しようとしていますか?通常、デバッグランタイムは「再配布不可」です。つまり、マージモジュールをビルドせずに、コードを実行しようとしているマシンにインストールすることなく他のマシンで実行することはできません。 – Benj

+0

@Nic - 私はその質問が役立つとは思わない、その人はちょうど正しいリリースのランタイムが不足していた。デバッグランタイムは痛いです...通常、VSで "セットアッププロジェクト"をビルドすると、デバッグビルドでバイナリと一緒にインストールできるように、マージモジュールが処理されます。 – Benj

答えて

5

私の質問にお答えいただきありがとうございます。私は最終的にそれを解決して、ここに解決策があります: -

私はQtベースのVC++ソリューションでしたが、アプリはいくつかのサードパーティのDLL &ライブラリに依存していました。 私の仕事は、64ビットOSでQtとサードパーティのDLL &をビルドしたアプリケーションに64ビットのサポートを提供することでした。

デバッグの64ビット設定で私のアプリをrunnigしようとしたときにCRTエラーが発生しました。

  1. Microsoft.VC90.DebugCRT.manifest
  2. msvcm90d.dll
  3. msvcp90d.dll
  4. msvcr90d.dll

:エラーは、私は自分のアプリケーションのbinフォルダに以下のブラウン管

redist\Debug_NonRedist\amd64\Microsoft.VC90.DebugCRTをコピーした後でさえ持続しました:

  1. vcomp90d.dll

私はQtとサードパーティのライブラリが存在した対応するビンフォルダに上記のCRTを貼り付けたときに64ビットモードのデバッグで正常に私のアプリを起動することができました。

+0

ヒント:あなた自身の答えを受け入れることができるはずです。 –

1

実際に少し異なるバージョンが必要なときにdllが見つかるように見えることがあるので、Dependsは並行依存性があまり良くありません。

あなたは何が不足しているかの良いアイデアを得るためにsxstrace.exeを使用することができます。

http://blogs.msdn.com/b/junfeng/archive/2006/04/14/576314.aspx

イベントログは通常、サイド・バイ・サイドのエラーを示していますが、悲しいことに、これらはあなたに他の多くの情報を与えていませんそれよりもあなたには問題があります。

2

私のDelphiコンソールアプリケーション(Winbx64で動作したときの32ビット、問題)に「権限昇格」のマニフェストを追加した後、同じ問題が発生しました。 問題はマニフェストファイルに記載された依存関係に関連していた:私はマニフェストからそれを削除する場合

<dependency> 
<dependentAssembly> 
    <assemblyIdentity 
    type="win32" 
    name="Microsoft.Windows.Common-Controls" 
    version="6.0.0.0" 
    publicKeyToken="6595b64144ccf1df" 
    language="*" 
    processorArchitecture="*"/> 
</dependentAssembly> 
</dependency> 

、サイド誤差によるサイドは姿を消しました。

+0

代替回答MrTheVのご歓迎ありがとうございます。 –

+0

これをマニフェストからどのように削除しましたか? – user3731622

関連する問題