Program.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using System;
  2. using System.Web.Hosting;
  3. using System.IO;
  4. namespace dumb2
  5. {
  6. class Program
  7. {
  8. static void SetupAppHost (string baseDir)
  9. {
  10. if (File.Exists (baseDir))
  11. File.Delete (baseDir);
  12. Console.Write ("App base: ");
  13. Console.WriteLine (baseDir);
  14. Directory.CreateDirectory (baseDir);
  15. string binDir = Path.Combine (baseDir, "bin");
  16. Directory.CreateDirectory (binDir);
  17. foreach (System.Reflection.Assembly a in AppDomain.CurrentDomain.GetAssemblies ()) {
  18. if (a.GlobalAssemblyCache) continue;
  19. string loc = a.ManifestModule.FullyQualifiedName;
  20. if (loc.EndsWith (".exe", true, System.Globalization.CultureInfo.CurrentCulture))
  21. continue;
  22. string fn = Path.GetFileName (loc);
  23. File.Copy (loc, Path.Combine (binDir, fn));
  24. }
  25. }
  26. static void Main (string[] args)
  27. {
  28. string baseDir1 = Path.GetTempFileName ();
  29. SetupAppHost (baseDir1);
  30. ClassLib.Host h1 = (ClassLib.Host) ApplicationHost.CreateApplicationHost (
  31. typeof (ClassLib.Host), "/test", baseDir1);
  32. h1.Run ();
  33. string baseDir2 = Path.GetTempFileName ();
  34. SetupAppHost (baseDir2);
  35. FileStream fs = new FileStream (Path.Combine (baseDir2, "Web.config"), FileMode.CreateNew);
  36. StreamWriter sw = new StreamWriter (fs);
  37. sw.Write ("<?xml version=\"1.0\"?><configuration><system.web><pages styleSheetTheme=\"White\"/></system.web></configuration>");
  38. sw.Close ();
  39. ClassLib.Host h2 = (ClassLib.Host) ApplicationHost.CreateApplicationHost (
  40. typeof (ClassLib.Host), "/test", baseDir2);
  41. h2.Run ();
  42. }
  43. }
  44. }