@@ -172,7 +172,7 @@ static AssemblyRef CreateAssembly(ModuleDef module, ClrAssembly clrAsm) {
172
172
var mscorlib = module ? . CorLibTypes . AssemblyRef ;
173
173
var asm = new AssemblyRefUser ( GetName ( clrAsm ) , contractAsmVersion , new PublicKeyToken ( GetPublicKeyToken ( clrAsm ) ) , UTF8String . Empty ) ;
174
174
175
- if ( mscorlib != null && mscorlib . Name == mscorlibName && mscorlib . Version != invalidWinMDVersion )
175
+ if ( mscorlib != null && mscorlib . Name == mscorlibName && IsValidMscorlibVersion ( mscorlib . Version ) )
176
176
asm . Version = mscorlib . Version ;
177
177
if ( module is ModuleDefMD mod ) {
178
178
Version ver = null ;
@@ -185,7 +185,7 @@ static AssemblyRef CreateAssembly(ModuleDef module, ClrAssembly clrAsm) {
185
185
continue ;
186
186
if ( ! PublicKeyBase . TokenEquals ( asmRef . PublicKeyOrToken , asm . PublicKeyOrToken ) )
187
187
continue ;
188
- if ( asmRef . Version == invalidWinMDVersion )
188
+ if ( ! IsValidMscorlibVersion ( asmRef . Version ) )
189
189
continue ;
190
190
191
191
if ( ver == null || asmRef . Version > ver )
@@ -198,9 +198,11 @@ static AssemblyRef CreateAssembly(ModuleDef module, ClrAssembly clrAsm) {
198
198
return asm ;
199
199
}
200
200
static readonly Version contractAsmVersion = new Version ( 4 , 0 , 0 , 0 ) ;
201
- static readonly Version invalidWinMDVersion = new Version ( 255 , 255 , 255 , 255 ) ;
202
201
static readonly UTF8String mscorlibName = new UTF8String ( "mscorlib" ) ;
203
202
203
+ // Silverlight uses 5.0.5.0
204
+ static bool IsValidMscorlibVersion ( Version version ) => version != null && ( uint ) version . Major <= 5 ;
205
+
204
206
static UTF8String GetName ( ClrAssembly clrAsm ) {
205
207
switch ( clrAsm ) {
206
208
case ClrAssembly . Mscorlib : return clrAsmName_Mscorlib ;
0 commit comments