Exemple #1
0
        private void CreateAppDomain()
        {
            var appDomainSetup = new AppDomainSetup
            {
                ApplicationBase = applicationPath,
            };

            if (!appDomainSetup.ApplicationBase.EndsWith("\\"))
            {
                appDomainSetup.ApplicationBase += "\\";
            }

            if (shadowCache)
            {
                // Note: disabled until https://developercommunity.visualstudio.com/content/problem/214568/when-using-loaderoptimizationmultidomain-assemblyr.html is fixed
                // this seems not necessary if we reuse same appdomain
                //appDomainSetup.LoaderOptimization = LoaderOptimization.MultiDomain;
                appDomainSetup.ShadowCopyFiles       = "true";
                appDomainSetup.ShadowCopyDirectories = applicationPath;
                appDomainSetup.CachePath             = Path.Combine(applicationPath, CacheFolder);
            }

            // Create AppDomain
            appDomain = AppDomain.CreateDomain(appDomainName, AppDomain.CurrentDomain.Evidence, appDomainSetup);
            appDomain.SetData("RealEntryAssemblyFile", entryAssemblyPath);

            // Create appDomain Callback
            appDomainCallback = new AssemblyLoaderCallback(AssemblyLoaded, mainAssemblyPath);

            // Install the appDomainCallback to prepare the new app domain
            appDomain.DoCallBack(appDomainCallback.RegisterAssemblyLoad);
        }
Exemple #2
0
        private void CreateAppDomain()
        {
            var appDomainSetup = new AppDomainSetup
            {
                ApplicationBase = applicationPath,
                ShadowCopyFiles = "true",
                CachePath       = Path.Combine(applicationPath, CacheFolder),
            };

            // Create AppDomain
            appDomain = AppDomain.CreateDomain(appDomainName, AppDomain.CurrentDomain.Evidence, appDomainSetup);

            // Create appDomain Callback
            appDomainCallback = new AssemblyLoaderCallback(AssemblyLoaded, mainAssemblyPath);

            // Install the appDomainCallback to prepare the new app domain
            appDomain.DoCallBack(appDomainCallback.RegisterAssemblyLoad);
        }
        private void CreateAppDomain()
        {
            var appDomainSetup = new AppDomainSetup
            {
                ApplicationBase = applicationPath,
            };

            if (shadowCache)
            {
                appDomainSetup.ShadowCopyFiles = "true";
                appDomainSetup.CachePath = Path.Combine(applicationPath, CacheFolder);
            }

            // Create AppDomain
            appDomain = AppDomain.CreateDomain(appDomainName, AppDomain.CurrentDomain.Evidence, appDomainSetup);

            // Create appDomain Callback
            appDomainCallback = new AssemblyLoaderCallback(AssemblyLoaded, mainAssemblyPath);

            // Install the appDomainCallback to prepare the new app domain
            appDomain.DoCallBack(appDomainCallback.RegisterAssemblyLoad);
        }