x64プラットフォーム用にアプリ(サードパーティライブラリを使用)をコンパイルしようとしています。ただし、VS2008ProのBuildConfigurationManagerからx64を選択しても機能しないようです。バイナリは作成されますが、クライアントはx64で実行できませんでした。
サードパーティのDLLが原因である可能性があるのではないかと思います。誰かがこれについて何か考えを持っていますか?
x64プラットフォーム用にアプリ(サードパーティライブラリを使用)をコンパイルしようとしています。ただし、VS2008ProのBuildConfigurationManagerからx64を選択しても機能しないようです。バイナリは作成されますが、クライアントはx64で実行できませんでした。
サードパーティのDLLが原因である可能性があるのではないかと思います。誰かがこれについて何か考えを持っていますか?
サードパーティライブラリのx64バージョンはありますか?そうでなければ、あなたは運が悪いです。プロセスは完全にx86またはx64である必要があり、ライブラリを組み合わせて使用することはできません。ライブラリがDLLの場合でも、x64ビルドからのエクスポートライブラリが必要です。
VSでx64構成を選択するとどのように機能しませんか?
更新: アプリが.NETでアーキテクチャに依存しない場合、64ビットOSに64ビットとして読み込まれます。ただし、32ビットDLLに依存している場合、実行時に失敗します。corflagsユーティリティを使用して、exeに常に32ビットをロードさせることができます。
ロブ・ウォーカーが言ったように。x64 マシンで SysInternals の「depends」プログラムを使用すると、詳細を確認できます。
問題の原因を特定することができました。x64 環境でバイナリを実行できなかったのは、ソース コード難読化ツール (Intellilock 1.1.0.4) の設定 (Encrypt IL Code) の 1 つでした。
この設定を無効にすると、問題が修正されました。
「VS2008 Pro の Build Configuration Manager から x64 を選択してもうまくいかないようです」
バイナリを取得する理由がまったくわかりませんが、x64 ツールはデフォルトではインストールされていないことを覚えておいてください。戻って VC2008 インストーラーを再実行し、カスタム インストールを行い、ツリーの VC++ ビットの下で、64 ビット コンパイラーのチェックボックスがオンになっていることを確認します。そうでない場合は、チェックしてインストールを実行します。次に、ビルドを試してください。
サードパーティの dll の 64 ビット バージョンが必要であり、すべてのインクルード パスと lib パスを正しく取得し、出力フォルダーをまっすぐにする必要がありますが、ツールをインストールすることが最初のステップです。
私のアプリケーションにはインストーラーがありません。前提条件として.NET2.0を使用して「ポータブルアプリ」として作成しました。
同じリクエストをベンダーに投稿しました。x64ビットがある場合は、元に戻すのをまだ待っています。
それまでの間、私は x64 Vista のコピーを購入して個人的にテストしようとしています。これをテストするためにユーザーを犠牲にすることはできません。新しい更新があり次第、このスレッドを投稿し続けます。
ありがとう。