diff options
author | Jeroen Frijters <jeroen@frijters.net> | 2013-09-20 17:12:58 +0400 |
---|---|---|
committer | Jeroen Frijters <jeroen@frijters.net> | 2013-09-20 17:12:58 +0400 |
commit | 57ab0b490a4de82b1cc0816db53153ab4cae1086 (patch) | |
tree | da2d8b48964cec6979cc4ac730bdf0a3a0a5ca96 | |
parent | d87a33d82ae72daa61da54bb1dec2c62085fce0d (diff) |
Added /project option.
-rw-r--r-- | Disassembler.cs | 9 | ||||
-rw-r--r-- | IKVM.Reflection.dll | bin | 446464 -> 458752 bytes | |||
-rw-r--r-- | Program.cs | 5 |
3 files changed, 13 insertions, 1 deletions
diff --git a/Disassembler.cs b/Disassembler.cs index 5ea4f6a..b34a36f 100644 --- a/Disassembler.cs +++ b/Disassembler.cs @@ -44,6 +44,7 @@ namespace Ildasm None = 0, DiffMode = 1, Caverbal = 2, + Project = 4, } sealed partial class Disassembler @@ -59,7 +60,7 @@ namespace Ildasm const int COMIMAGE_FLAGS_STRONGNAMESIGNED = 0x00000008; const int COMIMAGE_FLAGS_NATIVE_ENTRYPOINT = 0x00000010; const int COMIMAGE_FLAGS_32BITPREFERRED = 0x00020000; - readonly Universe universe = new Universe(UniverseOptions.EnableFunctionPointers | UniverseOptions.ResolveMissingMembers | UniverseOptions.DisablePseudoCustomAttributeRetrieval); + readonly Universe universe; readonly Assembly mscorlib; readonly Type typeofSystemBoolean; readonly Type typeofSystemSByte; @@ -100,6 +101,12 @@ namespace Ildasm this.compat = compat; this.diffMode = (flags & Flags.DiffMode) != 0; this.flags = flags; + UniverseOptions options = UniverseOptions.EnableFunctionPointers | UniverseOptions.ResolveMissingMembers | UniverseOptions.DisablePseudoCustomAttributeRetrieval; + if ((flags & Flags.Project) == 0) + { + options |= UniverseOptions.DisableWindowsRuntimeProjection; + } + universe = new Universe(options); universe.AssemblyResolve += new IKVM.Reflection.ResolveEventHandler(universe_AssemblyResolve); mscorlib = universe.Import(typeof(object)).Assembly; typeofSystemBoolean = universe.Import(typeof(bool)); diff --git a/IKVM.Reflection.dll b/IKVM.Reflection.dll Binary files differindex d603c4e..5ebb753 100644 --- a/IKVM.Reflection.dll +++ b/IKVM.Reflection.dll @@ -72,6 +72,10 @@ namespace Ildasm { flags |= Flags.Caverbal; } + else if (IsIldasmOption(arg, "project")) + { + flags |= Flags.Project; + } else { PrintUsage(); @@ -155,6 +159,7 @@ namespace Ildasm Console.WriteLine(" /COMPAT=<version> Match ildasm behavior. (<version> = 2.0 | 4.0 | 4.5)"); Console.WriteLine(" /DIFFMODE Remove superficial differences to allow assembly comparisons"); Console.WriteLine(" /CAVERBAL Try to decode custom attribute blobs"); + Console.WriteLine(" /PROJECT Project WinMD metadata into .NET format"); } } } |