是否有任何方法可以配置初始AppDomain

本文关键字:配置 AppDomain 任何 方法 是否 | 更新日期: 2023-09-27 17:59:47

我想这样做,以便我的主AppDomain将ShadowCopyAssemblies设置为true。

我能做些什么吗(例如,我可能缺少一个清单设置),让我的可执行文件中加载的第一个AppDomain将该属性设置为true,或者是我创建第二个AppDomain并让我的程序在第二个域中完成大部分工作的唯一选择?

目标环境是一个自托管服务,但知道如何为Console或windows应用程序提供服务也很好。

是否有任何方法可以配置初始AppDomain

发布问题后,我发现这是一个可以传递到App.config文件的设置。您需要做的是设置配置设置<appDomainManagerType><appDomainManagerAssembly>,并将其指向包含AppDomainManager的第二个程序集。

配置:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
    <runtime>
      <appDomainManagerType value="DomainManager.ShadowDomainManager" />
      <appDomainManagerAssembly
         value="DomainManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
    </runtime>
</configuration>

经理:

using System;
namespace DomainManager
{
    public class ShadowDomainManager : AppDomainManager
    {
        public override void InitializeNewDomain(AppDomainSetup appDomainInfo)
        {
            base.InitializeNewDomain(appDomainInfo); //Currently does not do anything.
            appDomainInfo.ShadowCopyFiles = "true";
        }
    }
}

这样做将导致初始域加载ShadowCopyFiles设置为true。