3 using System.Reflection;
7 public static void Main (string[] args)
9 var ver40 = new Version (4, 0, 0, 0);
10 var ver140 = new Version (14, 0, 0, 0);
11 var util20 = Assembly.ReflectionOnlyLoad ("Microsoft.Build.Utilities, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
12 var util35 = Assembly.ReflectionOnlyLoad ("Microsoft.Build.Utilities.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
13 var task20 = Assembly.ReflectionOnlyLoad ("Microsoft.Build.Tasks, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
14 var task35 = Assembly.ReflectionOnlyLoad ("Microsoft.Build.Tasks.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
15 var engn20 = Assembly.ReflectionOnlyLoad ("Microsoft.Build.Engine, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
16 var engn35 = Assembly.ReflectionOnlyLoad ("Microsoft.Build.Engine, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
17 var frwk20 = Assembly.ReflectionOnlyLoad ("Microsoft.Build.Framework, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
18 var frwk35 = Assembly.ReflectionOnlyLoad ("Microsoft.Build.Framework, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
20 // when run as part of the test suite, we need to register the xbuild 14.0 path or v14 assembly lookup will fail
21 if (!String.IsNullOrEmpty (Environment.GetEnvironmentVariable ("MONO_PATH"))) {
22 var p = Path.Combine (new DirectoryInfo (Environment.GetEnvironmentVariable ("MONO_PATH")).Parent.FullName, "xbuild_14");
23 Console.WriteLine("Adding private bin path " + p);
24 AppDomain.CurrentDomain.AppendPrivatePath (p);
27 var engn140 = Assembly.ReflectionOnlyLoad ("Microsoft.Build.Engine, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
28 var frwk140 = Assembly.ReflectionOnlyLoad ("Microsoft.Build.Framework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
31 throw new Exception ("#1 assembly couldn't be loaded.");
34 throw new Exception ("#2 assembly couldn't be loaded.");
36 if (util20.GetName ().Version != ver40)
37 throw new Exception ("#3 expected remap to v4.0.0.0, but got " + util20);
39 if (util35.GetName ().Version != ver40)
40 throw new Exception ("#4 expected remap to v4.0.0.0, but got " + util35);
43 throw new Exception ("#5 assembly couldn't be loaded.");
46 throw new Exception ("#6 assembly couldn't be loaded.");
48 if (task20.GetName ().Version != ver40)
49 throw new Exception ("#7 expected remap to v4.0.0.0, but got " + task20);
51 if (task35.GetName ().Version != ver40)
52 throw new Exception ("#8 expected remap to v4.0.0.0, but got " + task35);
55 throw new Exception ("#9 assembly couldn't be loaded.");
58 throw new Exception ("#10 assembly couldn't be loaded.");
61 throw new Exception ("#11 assembly couldn't be loaded.");
63 if (engn20.GetName ().Version != ver40)
64 throw new Exception ("#12 expected remap to v4.0.0.0, but got " + engn20);
66 if (engn35.GetName ().Version != ver40)
67 throw new Exception ("#13 expected remap to v4.0.0.0, but got " + engn35);
69 if (engn140.GetName ().Version != ver140)
70 throw new Exception ("#14 expected v14.0.0.0, but got " + engn140);
73 throw new Exception ("#15 assembly couldn't be loaded.");
76 throw new Exception ("#16 assembly couldn't be loaded.");
79 throw new Exception ("#17 assembly couldn't be loaded.");
81 if (frwk20.GetName ().Version != ver40)
82 throw new Exception ("#18 expected remap to v4.0.0.0, but got " + frwk20);
84 if (frwk35.GetName ().Version != ver40)
85 throw new Exception ("#19 expected remap to v4.0.0.0, but got " + frwk35);
87 if (frwk140.GetName ().Version != ver140)
88 throw new Exception ("#20 expected v14.0.0.0, but got " + frwk140);