■ AppDomain 클래스에서 애플리케이션의 그림자 복사(Shadow Copy)를 하는 방법을 보여준다.
[TestLoader 프로젝트]
▶ Program.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
using System; using System.IO; namespace TestLoader { /// <summary> /// 프로그램 /// </summary> class Program { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region 프로그램 시작하기 - Main() /// <summary> /// 프로그램 시작하기 /// </summary> [LoaderOptimization(LoaderOptimization.MultiDomainHost)] [STAThread] private static void Main() { string applicationDirectoryPath = @"D:\TestSolution\TestProject\bin\Debug"; string cacheDirectoryPath = Path.Combine(applicationDirectoryPath, "__cache"); string configurationFilePath = Path.Combine(applicationDirectoryPath, "TestProject.exe.config"); string assemblyFilePath = Path.Combine(applicationDirectoryPath, "TestProject.exe"); AppDomainSetup setup = new AppDomainSetup(); setup.ApplicationName = "TestProject"; setup.ShadowCopyFiles = "true"; setup.CachePath = cacheDirectoryPath; setup.ConfigurationFile = configurationFilePath; AppDomain appDomain = AppDomain.CreateDomain("TestProject", AppDomain.CurrentDomain.Evidence, setup); appDomain.ExecuteAssembly(assemblyFilePath); AppDomain.Unload(appDomain); Directory.Delete(cacheDirectoryPath, true); } #endregion } } |