Inheritance: System.MarshalByRefObject
Beispiel #1
0
            public void DoLoad() {
                engine = new Engine();
                string pth = Path.Combine(framework.FrameworkDirectory.FullName, "Microsoft.Build.Engine.dll");
                if (File.Exists(pth)) {
                    engine._a = Assembly.LoadFile(pth);
                } else {
                    //frameworks 3.0 and 3.5 do not copy its assemblies into filesystem. They reside just in assembly cache (GAC)

                    //Microsoft.Build.Engine, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
                    AssemblyName an = new AssemblyName("Microsoft.Build.Engine");
                    an.Version = new Version(framework.Version.Major, framework.Version.Minor, 0, 0);
                    an.CultureInfo = System.Globalization.CultureInfo.InvariantCulture;
                    an.SetPublicKeyToken(new byte[] { 0xb0, 0x3f, 0x5f, 0x7f, 0x11, 0xd5, 0x0a, 0x3a });

                    engine._a = Assembly.Load(an); //load from GAC
                }
                engine._t = engine._a.GetType("Microsoft.Build.BuildEngine.Engine");
                engine._obj = Activator.CreateInstance(engine._t);

                //2.0
                if (engine._a.GetName().Version.Major == 2) {
                    engine._t.GetProperty("BinPath").SetValue(engine._obj, framework.FrameworkDirectory.FullName, null);
                }
            }
Beispiel #2
0
 public Project(Engine engine) {
     _t = engine.Assembly.GetType("Microsoft.Build.BuildEngine.Project");
     _obj = Activator.CreateInstance(_t, engine.Object);                      
 }