Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/cecil.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJb Evain <jb@evain.net>2016-07-15 07:02:34 +0300
committerJb Evain <jb@evain.net>2016-07-15 07:02:34 +0300
commit7e82a94c3a0bf491e48d4ebcb68529cd1b7fd1cf (patch)
treea7b1963f397d2b62d503baa6312bd6d4c7d86765 /Test/Mono.Cecil.Tests
parent9c7c813f978ae2f05da59a37cd297f2880be9616 (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.cs25
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