Siegfried Pammer
c0f0135373
#2691 : Do not use AssemblyDefintion.GetAssemblyName().
...
This fails in culture-invariant mode (ilspycmd) when trying to work with satellite assemblies, because System.Reflection.AssemblyName tries to retrieve CultureInfo of the assembly culture.
3 years ago
Siegfried Pammer
de5b72114e
Fix nullable and other warnings.
3 years ago
Siegfried Pammer
93dcba3426
* Rename Metadata.GenericContext to MetadataGenericContext to avoid conflicts with TypeSystem.GenericContext
...
* Change MetadataGenericContext to readonly struct
* Rearrange types in Dom.cs
3 years ago
Siegfried Pammer
234eb071f0
Fix nullability warnings in FindTypeDecoder.
3 years ago
Siegfried Pammer
d19c93fc41
Fix #2645 : ToPrimitiveTypeCode: return 0, if known type is not primitive.
3 years ago
Siegfried Pammer
3d35240224
Fix nullability warning and bug in UniversalAssemblyResolver.
3 years ago
Siegfried Pammer
e05b0dcbb0
#2657 : Use the same metadata reader (same options) in all cases.
3 years ago
Siegfried Pammer
29776aa7b1
Cache PEFile.AssemblyReferences
3 years ago
Siegfried Pammer
6219bb964c
Optimize GetFullAssemblyName extension method
3 years ago
Siegfried Pammer
a2e9d5bb66
Simplify UniversalAssemblyResolver.GetAsssemblyFile
3 years ago
Siegfried Pammer
04387d247c
Cache AssemblyReference.Name and AssemblyReference.FullName
3 years ago
Siegfried Pammer
c4edf43b69
AttributeAppliedToAnalyzer: Refactoring and optimization
3 years ago
Siegfried Pammer
a9c8f86abc
Make TypeDef-ctor of FindTypeDecoder internal.
3 years ago
Siegfried Pammer
8cc0bf8b49
Generalize FindTypeDecoder
3 years ago
Siegfried Pammer
1efcfe4ae4
#2594 : Improve AssemblyListSnapshot: normalize all .NET Framework versions "v4.x" to "v4"
3 years ago
Siegfried Pammer
50cfcc214c
DecompilerTypeSystem: Add support for implicit references
3 years ago
Siegfried Pammer
e823ed9966
#2594 : Cache LoadedAssembly.GetTargetFrameworkIdAsync, LoadedAssembly.GetRuntimePackAsync, PEFile.Name, PEFile.FullName to improve performance of assembly resolving. This improves performance of the analysis by a factor of 2.
4 years ago
Siegfried Pammer
518ade7523
Make GetReferenceAssemblyPath pick the closest available version.
4 years ago
Siegfried Pammer
77ceb15e31
Fix build.
4 years ago
Siegfried Pammer
8f6ee052be
Fix #2469 : Add special case for mscorlib and netstandard.dll to DetectTargetFrameworkId
4 years ago
Siegfried Pammer
35ad7f3074
Update build tools used by ILSpy to use .NET 5.0 instead of .NET Core 3.1
4 years ago
Daniel Grunwald
715968e02a
Fix potential NullReferenceException in UniversalAssemblyResolver
4 years ago
Daniel Grunwald
7f36cc3e50
#nullable enable for UniversalAssemblyResolver
4 years ago
Siegfried Pammer
0ae95333e5
Fix bug in DotNetCorePathFinder on Unix systems: realpath always returned garbage.
4 years ago
Siegfried Pammer
f6e39005c6
Fix documentation warning.
4 years ago
Siegfried Pammer
2ed52b9634
#2362 : Provide more information on assembly resolve errors
4 years ago
Siegfried Pammer
b6da9b23b1
Fix thread-safety issue in UniversalAssemblyResolver
4 years ago
Siegfried Pammer
5734da4294
Fix #2314 : ILSpy incorrectly resolves a runtime dependency when dll is present in both WindowsDesktop.App and NETCore.App
4 years ago
Daniel Grunwald
a01c63dc62
Fix nullability warning: avoid NullReferenceException in the theoretical case where an unknown PrimitiveTypeCode is passed.
4 years ago
Daniel Grunwald
281586de1f
`#enable nullable` for a couple of files.
...
Includes some fixes for potential NullReferenceExceptions.
4 years ago
Daniel Grunwald
d70bfe80d5
Add ResolveAsync() method to IAssemblyResolver interface.
...
DecompilerTypeSystem uses this to resolve/load multiple assemblies in parallel.
Unfortunately this doesn't gain us any performance yet in ILSpy because there we have a global assembly-loader-lock :(
4 years ago
Daniel Grunwald
899714d603
Remove unnecessary mutable state from UniversalAssemblyResolver.
4 years ago
Siegfried Pammer
e21f54b6cb
Remove spaces from TargetFrameworkAttribute value
4 years ago
Siegfried Pammer
115ca210c7
Fix #2275 : Exception when assembly does not contain proper MetadataVersion.
5 years ago
Siegfried Pammer
cf5a38f927
Fix #2255 : Prefer ".dll" suffix over ".exe" in assembly reference resolution.
5 years ago
Siegfried Pammer
fb8603e099
According to the ilasm source code "codelabel" is a keyword as well
5 years ago
Siegfried Pammer
74203e7fb2
#2228 : Add additional documentation to clear up some misunderstanding about UniversalAssemblyResolver ctor parameters.
5 years ago
Siegfried Pammer
ea699b0da0
Fix formatting.
5 years ago
Bernd Baumanns
dd98de858d
ILSpy should not crash if fullName contains no "/" - no version info
5 years ago
Daniel Grunwald
0de6238d65
Support resolving assembly references within a bundle.
5 years ago
Siegfried Pammer
f0012cbc1a
#2198 : Make ILSpy more resilient in case of obfuscated assemblies.
5 years ago
Daniel Grunwald
2d0df349d8
Refactor resource loading.
5 years ago
Daniel Grunwald
f74d3c40a9
Add NuGet packages (and other files) to TreeView
5 years ago
文煌
d612008c9f
write OutputType for asp.net library
5 years ago
文煌
e8e0f89f6d
don't write HintPath for .NET Core shared assembly
5 years ago
Daniel Grunwald
9b27ced6af
Avoid reference on ICSharpCode.Decompiler in VS AddIn.
...
This way we don't need to load SRM 5 within the VS process.
5 years ago
dotnet format
0d9f871a4f
#2128 : Reformat the whole code base.
5 years ago
Siegfried Pammer
1c563a62a9
Fix #2090 : ignore mscorlib references without public key token, when trying to resolve mscorlib. This will automatically fallback to .NET 4.0's mscorlib.dll.
5 years ago
Daniel Grunwald
8061634e67
#1203 , #2092 : New logic for resolving assembly references within the type system.
...
We now avoid the old `IModuleReference` interface which required allocating for every type being resolved.
Instead `MetadataModule.ResolveModule` now combines decoding+resolving assembly references into a single step.
This allows the type system to maintain a cache indexed by row number.
This also changes the behavior of resolving references within a compilation: We now prefer an exact match (name + version + publickeytoken) first; and fall back to a name-only match only if no exact match exists.
This somewhat improves the decompilation of assemblies created by using ilmerge to combine assemblies with different target frameworks.
5 years ago
Daniel Grunwald
40e2776f02
#2089 : Handle invalid attribute/reference metadata in `DetectTargetFrameworkId`
5 years ago