マネージDLLであるp4.netを使用するプロジェクトがいくつかあります。p4.netは、32ビットのアンマネージDLLであるp4dn.dllに依存しています。これはx64システムで問題があるため、p4.netを使用する各プロジェクトに移動し、そのプロセッサタイプをx86に設定する必要がありました。
問題を正しく理解していれば、.NETがexeをロードすると、マニフェストをチェックし、マニフェストがない場合は、プロセッサタイプに最適な処理を実行します。次に、32ビットdllに遭遇すると、barfsします。
p4.netを使用する各プロジェクトに移動し、32ビットとしてマークすることができます。しかし、これらはかなりの数あります。また、人々は新しいものを作り続け、32ビットを設定するのを忘れるでしょう。そして将来、誰かがx64でそれを使おうとすると、この問題が再び発生します。
私の質問はこれです:.NETにp4dn.dllを32ビットとして使用するアプリを自動的にロードさせる方法はありますか?それができない場合、IDEがこれを検出してビルドに失敗する方法はありますか?
または、p4apiまたはp4dn.dllの横に配置できる.manifestファイルを作成して、それらを使用するアプリが32ビットで自動実行されるようにすることは可能ですか?