C# 有没有办法配置初始AppDomain?
我想使我的主AppDomain设置为true 我可以做些什么(例如,我缺少的清单设置),让我的可执行文件中加载的第一个AppDomain将该属性设置为true,或者是我创建第二个AppDomain并让我的程序在该第二个域中完成大部分工作的唯一选项C# 有没有办法配置初始AppDomain?,c#,.net,appdomain,C#,.net,Appdomain,我想使我的主AppDomain设置为true 我可以做些什么(例如,我缺少的清单设置),让我的可执行文件中加载的第一个AppDomain将该属性设置为true,或者是我创建第二个AppDomain并让我的程序在该第二个域中完成大部分工作的唯一选项 目标环境是一个自托管服务,但知道如何为控制台或windows应用程序执行该服务也很好。在发布问题后,我发现这是一个可以传递到App.config文件的设置。您需要做的是设置配置设置并将其指向包含AppDomainManager的第二个程序集 配置: &
目标环境是一个自托管服务,但知道如何为控制台或windows应用程序执行该服务也很好。在发布问题后,我发现这是一个可以传递到
App.config
文件的设置。您需要做的是设置配置设置并将其指向包含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>
执行此操作将导致加载初始域,并将
ShadowCopyFiles
设置为true。您是否尝试过AppDomainSetup.ShadowCopyFiles
?它对你有用吗?@Abhi是用来创建新域的,一旦创建了域,你就不能修改它。不过,我认为我找到了解决办法,我将很快发布一个答案。我删除了我的答案,因为这更全面。您可能应该调用base.InitializeNewDomain
,即使它现在没有任何功能。我很难让它正常工作。我仍然无法删除我的条目程序集。我已尝试将.NET版本重置回4.0。
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";
}
}
}