Browse Source

Add AssemblyDefinition paramater to IsGacAssembly

pull/728/head
Siegfried Pammer 9 years ago
parent
commit
27a7d04b2f
  1. 6
      ICSharpCode.Decompiler/CSharp/WholeProjectDecompiler.cs
  2. 8
      ICSharpCode.Decompiler/Tests/RoundtripAssembly.cs

6
ICSharpCode.Decompiler/CSharp/WholeProjectDecompiler.cs

@ -193,8 +193,8 @@ namespace ICSharpCode.Decompiler.CSharp @@ -193,8 +193,8 @@ namespace ICSharpCode.Decompiler.CSharp
if (r.Name != "mscorlib") {
w.WriteStartElement("Reference");
w.WriteAttributeString("Include", r.Name);
if (!IsGacAssembly(r)) {
var asm = module.AssemblyResolver.Resolve(r);
var asm = module.AssemblyResolver.Resolve(r);
if (!IsGacAssembly(r, asm)) {
if (asm != null) {
w.WriteElementString("HintPath", asm.MainModule.FullyQualifiedName);
}
@ -222,7 +222,7 @@ namespace ICSharpCode.Decompiler.CSharp @@ -222,7 +222,7 @@ namespace ICSharpCode.Decompiler.CSharp
}
}
protected virtual bool IsGacAssembly(AssemblyNameReference r)
protected virtual bool IsGacAssembly(AssemblyNameReference r, AssemblyDefinition asm)
{
return false;
}

8
ICSharpCode.Decompiler/Tests/RoundtripAssembly.cs

@ -226,12 +226,14 @@ namespace ICSharpCode.Decompiler.Tests @@ -226,12 +226,14 @@ namespace ICSharpCode.Decompiler.Tests
public TestProjectDecompiler(string baseDir)
{
localAssemblies = new DirectoryInfo(baseDir).EnumerateFiles("*.dll").Select(f => f.Name).ToArray();
localAssemblies = new DirectoryInfo(baseDir).EnumerateFiles("*.dll").Select(f => f.FullName).ToArray();
}
protected override bool IsGacAssembly(AssemblyNameReference r)
protected override bool IsGacAssembly(AssemblyNameReference r, AssemblyDefinition asm)
{
return !localAssemblies.Contains(r.Name + ".dll");
if (asm == null)
return false;
return !localAssemblies.Contains(asm.MainModule.FullyQualifiedName);
}
}

Loading…
Cancel
Save