2014-04-24 3 views
4

내 기본 AppDomain에 ShadowCopyAssemblies이 true로 설정되도록 만들고 싶습니다.초기 AppDomain을 구성 할 수있는 방법이 있습니까?

실행 파일에로드 된 첫 번째 AppDomain이 해당 속성을 true로 설정하거나 제 2 AppDomain을 만들고 내 유일한 옵션으로 사용할 수있는 방법이 있습니까 (예 : 누락 된 매니 페스트 설정). 내 프로그램은 그 두 번째 도메인에서 그 일의 대부분을합니까?

대상 환경은 자체 호스팅 서비스이지만 Console 또는 Windows 응용 프로그램에서이를 수행하는 방법을 아는 것도 좋습니다.

+0

'AppDomainSetup.ShadowCopyFiles'을 사용해 보셨나요? 너에게 효과가 있니? –

+0

@Abhi 새 도메인을 만드는 것입니다. 도메인을 만든 후에는 수정할 수 없습니다. 그러나 나는 해결책을 찾은 것 같아, 곧 답변을 게시 할 것입니다. –

답변

4

내가 게시 한 질문을 게시 한 후 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"; 
     } 
    } 
} 

초기 도메인이 true로 ShadowCopyFiles 세트를로드하게됩니다.

+0

보다 포괄적이기 때문에 답을 삭제했습니다. 지금 당장 아무것도하지 않더라도'base.InitializeNewDomain'을 호출해야합니다. – Lee

관련 문제