私は多くの実行可能ファイル(.exe、.dll)を持つサーバーを持っていますが、このファイルは別の実行可能ファイルにもリンクしていました。 デプロイメントエラーを防ぐために、すべての依存関係を検索し、その依存関係を調べ、プラットフォームの非互換性(32ビットまたは64ビット)をチェックする方法が必要です。実行可能ファイル参照をプログラムで見つける方法
私はバイナリのプラットフォームを検出するのに問題はありませんが、依存関係のリストを取得する方法はわかりません。
提案がありますか?
私は多くの実行可能ファイル(.exe、.dll)を持つサーバーを持っていますが、このファイルは別の実行可能ファイルにもリンクしていました。 デプロイメントエラーを防ぐために、すべての依存関係を検索し、その依存関係を調べ、プラットフォームの非互換性(32ビットまたは64ビット)をチェックする方法が必要です。実行可能ファイル参照をプログラムで見つける方法
私はバイナリのプラットフォームを検出するのに問題はありませんが、依存関係のリストを取得する方法はわかりません。
提案がありますか?
チェックアウトhttp://www.dependencywalker.com/ - これはモジュール依存関係の階層を見るのに最適なツールです。
この質問は定期的にここで尋ねられるようです。あなたが提案した依存関係をリバースエンジニアリングすることはお勧めしません。問題は異なるプラットフォーム上で依存関係が異なることがあります。あなたができる場合は、ソースからそれを動作させる必要があります。一見したように、これは難しくありません。
管理コードの場合は、Reflectionを使用してすべての管理下位の依存関係を調べることができます。また、Tenfourが指摘した依存関係ウォーカーがネイティブに役立つはずです。レジストリキー、COM、構成ファイル/設定など、簡単にチェックされていない他の種類の依存関係のファクタリングを開始するときに問題が発生します。
ライブサーバーにプッシュする前に、サーバーにデプロイするか、ステージングを設定するための受け入れテストを開発することをお勧めします。これにより、デプロイメントエラーだけでなく、最初のテストで紛失した可能性のある他の機能上の欠陥も把握できます。
私はC#を使用していますが、Delphi、CまたはC++を使用できます。 – poyo