v2.0 ランタイムにリンクされたアセンブリをインポートする .Net アセンブリがあります。私が抱えている問題は、アセンブリでいくつかのテストを実行しようとすると、Fusion が依存アセンブリの間違ったバージョンをロードしようとすることです。
アセンブリ マニフェストを確認すると、その理由がわかりました。間違ったバージョンのFSharp.Core
がリンクされています。私のビルド ファイルではFSharp.Core, Version=4.0.0.0
明示的に作成していますがFSharpPowerPack
、v2.0.0.0 にリンクしているように見えます。
マニフェストは次のとおりです。
// Metadata version: v4.0.30319
.assembly extern mscorlib
{
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
.ver 4:0:0:0
}
.assembly extern System.Core
{
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
.ver 4:0:0:0
}
.assembly extern System
{
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
.ver 4:0:0:0
}
.assembly extern FSharp.PowerPack
{
.publickeytoken = (A1 90 89 B1 C7 4D 08 09 ) // .....M..
.ver 2:0:0:0
}
.assembly extern mscorlib as mscorlib_8
{
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
.ver 2:0:0:0
}
.assembly extern System.Core as System.Core_9
{
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
.ver 3:5:0:0
}
.assembly extern FSharp.Core
{
.publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....:
.ver 2:0:0:0
}
FSharpPowerPack
他の .Net アセンブリ (mscorlib、System、System.Core) の v2.0 および v3.5 を含めることにより、含まれてエイリアスが付けられているように見えることに注意してください。なぜこれが起こるのですか?これは の間違ったバージョンをロードするという問題に関連していFSharp.Core
ますか?
編集:明確にするために、私のアセンブリは C# v4.0 コンパイラによって生成されています。