Skip to content

Commit 104abf9

Browse files
committed
Update invalid mscorlib version check
1 parent 070dec4 commit 104abf9

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

src/DotNet/WinMDHelpers.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ static AssemblyRef CreateAssembly(ModuleDef module, ClrAssembly clrAsm) {
172172
var mscorlib = module?.CorLibTypes.AssemblyRef;
173173
var asm = new AssemblyRefUser(GetName(clrAsm), contractAsmVersion, new PublicKeyToken(GetPublicKeyToken(clrAsm)), UTF8String.Empty);
174174

175-
if (mscorlib != null && mscorlib.Name == mscorlibName && mscorlib.Version != invalidWinMDVersion)
175+
if (mscorlib != null && mscorlib.Name == mscorlibName && IsValidMscorlibVersion(mscorlib.Version))
176176
asm.Version = mscorlib.Version;
177177
if (module is ModuleDefMD mod) {
178178
Version ver = null;
@@ -185,7 +185,7 @@ static AssemblyRef CreateAssembly(ModuleDef module, ClrAssembly clrAsm) {
185185
continue;
186186
if (!PublicKeyBase.TokenEquals(asmRef.PublicKeyOrToken, asm.PublicKeyOrToken))
187187
continue;
188-
if (asmRef.Version == invalidWinMDVersion)
188+
if (!IsValidMscorlibVersion(asmRef.Version))
189189
continue;
190190

191191
if (ver == null || asmRef.Version > ver)
@@ -198,9 +198,11 @@ static AssemblyRef CreateAssembly(ModuleDef module, ClrAssembly clrAsm) {
198198
return asm;
199199
}
200200
static readonly Version contractAsmVersion = new Version(4, 0, 0, 0);
201-
static readonly Version invalidWinMDVersion = new Version(255, 255, 255, 255);
202201
static readonly UTF8String mscorlibName = new UTF8String("mscorlib");
203202

203+
// Silverlight uses 5.0.5.0
204+
static bool IsValidMscorlibVersion(Version version) => version != null && (uint)version.Major <= 5;
205+
204206
static UTF8String GetName(ClrAssembly clrAsm) {
205207
switch (clrAsm) {
206208
case ClrAssembly.Mscorlib: return clrAsmName_Mscorlib;

0 commit comments

Comments
 (0)