diff options
author | Jb Evain <jb@evain.net> | 2016-07-15 07:02:34 +0300 |
---|---|---|
committer | Jb Evain <jb@evain.net> | 2016-07-15 07:02:34 +0300 |
commit | 7e82a94c3a0bf491e48d4ebcb68529cd1b7fd1cf (patch) | |
tree | a7b1963f397d2b62d503baa6312bd6d4c7d86765 /Test/Mono.Cecil.Tests | |
parent | 9c7c813f978ae2f05da59a37cd297f2880be9616 (diff) |
Make test pass with another version of the Win10 SDK installed
Diffstat (limited to 'Test/Mono.Cecil.Tests')
-rw-r--r-- | Test/Mono.Cecil.Tests/WindowsRuntimeAssemblyResolver.cs | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/Test/Mono.Cecil.Tests/WindowsRuntimeAssemblyResolver.cs b/Test/Mono.Cecil.Tests/WindowsRuntimeAssemblyResolver.cs index a08cc41..320ffa2 100644 --- a/Test/Mono.Cecil.Tests/WindowsRuntimeAssemblyResolver.cs +++ b/Test/Mono.Cecil.Tests/WindowsRuntimeAssemblyResolver.cs @@ -1,9 +1,13 @@ using System; +using System.Collections.Generic; using System.IO; using Microsoft.Win32; namespace Mono.Cecil.Tests { public class WindowsRuntimeAssemblyResolver : DefaultAssemblyResolver { + + readonly Dictionary<string, AssemblyDefinition> assemblies = new Dictionary<string, AssemblyDefinition> (); + public static WindowsRuntimeAssemblyResolver CreateInstance () { if (Platform.OnMono) @@ -15,12 +19,21 @@ namespace Mono.Cecil.Tests { } } + public override AssemblyDefinition Resolve (AssemblyNameReference name) + { + AssemblyDefinition assembly; + if (assemblies.TryGetValue(name.Name, out assembly)) + return assembly; + + return base.Resolve (name); + } + private WindowsRuntimeAssemblyResolver () { LoadWindowsSdk ("v8.1", "8.1", (installationFolder) => { - var fileName = Path.Combine (installationFolder, @"References\CommonConfiguration\Neutral\Windows.winmd"); + var fileName = Path.Combine (installationFolder, @"References\CommonConfiguration\Neutral\Annotated\Windows.winmd"); var assembly = AssemblyDefinition.ReadAssembly (fileName); - RegisterAssembly (assembly); + Register (assembly); }); LoadWindowsSdk ("v10.0", "10", (installationFolder) => { @@ -29,11 +42,17 @@ namespace Mono.Cecil.Tests { foreach (var assemblyPath in assemblies) { var assembly = AssemblyDefinition.ReadAssembly (assemblyPath); - RegisterAssembly (assembly); + Register (assembly); } }); } + void Register (AssemblyDefinition assembly) + { + assemblies [assembly.Name.Name] = assembly; + RegisterAssembly (assembly); + } + private void LoadWindowsSdk (string registryVersion, string windowsKitsVersion, Action<string> registerAssembliesCallback) { #if NET_4_0 |