アプリケーションと、それが依存する dll があり、csproj ファイルで .NET 3.5 をターゲットにするように設定されています。/p:TargetFrameworkVersion=v4.0
コマンド ライン パラメーターとして msbuild に (NAnt を使用して)渡すことにより、.NET 4.0 をターゲットとするこれら 2 つのプロジェクトをビルドしようとしています。ビルドは成功していますが、プログラムを実行すると、BadImageFormatException ですぐにクラッシュします - 「このアセンブリは、現在読み込まれているランタイムよりも新しいランタイムによって構築されており、読み込むことができません」
.NET リフレクターを使用して、出力の exe と dll のすべての参照を確認しました。すべてが .NET 4.0 dll を参照しています。.NET 2 を参照するものはありません。それでも、私のデバッガーは、mscorlib 2.0.50727.4971 がロードされたと言っています。
プロジェクト自体を .NET 4 を対象とするように変更してから、Visual Studio でビルドすると問題なく動作します。
次の調査ステップがどうなるかわからないので、ここで少し立ち往生しています。そのバージョンの mscorlib をロードしている理由がわかりません。