3 using System
.Reflection
;
4 using System
.Runtime
.InteropServices
;
8 [DllImport("__Internal")]
9 extern static void mono_set_assemblies_path (string path
);
11 public static void Main (string[] args
)
13 var ver40
= new Version (4, 0, 0, 0);
14 var ver140
= new Version (14, 0, 0, 0);
15 var util20
= Assembly
.ReflectionOnlyLoad ("Microsoft.Build.Utilities, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
16 var util35
= Assembly
.ReflectionOnlyLoad ("Microsoft.Build.Utilities.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
17 var task20
= Assembly
.ReflectionOnlyLoad ("Microsoft.Build.Tasks, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
18 var task35
= Assembly
.ReflectionOnlyLoad ("Microsoft.Build.Tasks.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
19 var engn20
= Assembly
.ReflectionOnlyLoad ("Microsoft.Build.Engine, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
20 var engn35
= Assembly
.ReflectionOnlyLoad ("Microsoft.Build.Engine, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
21 var frwk20
= Assembly
.ReflectionOnlyLoad ("Microsoft.Build.Framework, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
22 var frwk35
= Assembly
.ReflectionOnlyLoad ("Microsoft.Build.Framework, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
24 // when run as part of the test suite, we need to register the xbuild 14.0 path or v14 assembly lookup will fail
25 var mono_path
= Environment
.GetEnvironmentVariable ("MONO_PATH");
26 if (!String
.IsNullOrEmpty (mono_path
)) {
27 var xbuild
= Path
.Combine (new DirectoryInfo (mono_path
).Parent
.FullName
, "xbuild_14");
28 mono_path
= xbuild
+ Path
.PathSeparator
+ mono_path
;
29 Console
.WriteLine ("Setting Mono assemblies path to " + mono_path
);
30 mono_set_assemblies_path (mono_path
);
33 var engn140
= Assembly
.ReflectionOnlyLoad ("Microsoft.Build.Engine, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
34 var frwk140
= Assembly
.ReflectionOnlyLoad ("Microsoft.Build.Framework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
37 throw new Exception ("#1 assembly couldn't be loaded.");
40 throw new Exception ("#2 assembly couldn't be loaded.");
42 if (util20
.GetName ().Version
!= ver40
)
43 throw new Exception ("#3 expected remap to v4.0.0.0, but got " + util20
);
45 if (util35
.GetName ().Version
!= ver40
)
46 throw new Exception ("#4 expected remap to v4.0.0.0, but got " + util35
);
49 throw new Exception ("#5 assembly couldn't be loaded.");
52 throw new Exception ("#6 assembly couldn't be loaded.");
54 if (task20
.GetName ().Version
!= ver40
)
55 throw new Exception ("#7 expected remap to v4.0.0.0, but got " + task20
);
57 if (task35
.GetName ().Version
!= ver40
)
58 throw new Exception ("#8 expected remap to v4.0.0.0, but got " + task35
);
61 throw new Exception ("#9 assembly couldn't be loaded.");
64 throw new Exception ("#10 assembly couldn't be loaded.");
67 throw new Exception ("#11 assembly couldn't be loaded.");
69 if (engn20
.GetName ().Version
!= ver40
)
70 throw new Exception ("#12 expected remap to v4.0.0.0, but got " + engn20
);
72 if (engn35
.GetName ().Version
!= ver40
)
73 throw new Exception ("#13 expected remap to v4.0.0.0, but got " + engn35
);
75 if (engn140
.GetName ().Version
!= ver140
)
76 throw new Exception ("#14 expected v14.0.0.0, but got " + engn140
);
79 throw new Exception ("#15 assembly couldn't be loaded.");
82 throw new Exception ("#16 assembly couldn't be loaded.");
85 throw new Exception ("#17 assembly couldn't be loaded.");
87 if (frwk20
.GetName ().Version
!= ver40
)
88 throw new Exception ("#18 expected remap to v4.0.0.0, but got " + frwk20
);
90 if (frwk35
.GetName ().Version
!= ver40
)
91 throw new Exception ("#19 expected remap to v4.0.0.0, but got " + frwk35
);
93 if (frwk140
.GetName ().Version
!= ver140
)
94 throw new Exception ("#20 expected v14.0.0.0, but got " + frwk140
);