gpt4 book ai didi

c# - 自定义 AppDomainManager 启动 runtimeHost 失败

转载 作者:太空狗 更新时间:2023-10-29 21:35:54 27 4
gpt4 key购买 nike

我有以下 appDomainManager 代码

public class HostAppDomainManager : AppDomainManager
{
public override void InitializeNewDomain(AppDomainSetup appDomainInfo)
{
this.InitializationFlags = AppDomainManagerInitializationOptions.RegisterWithHost;
}
}

以及以下用于启动运行时主机的非托管代码

int _tmain(int argc, _TCHAR* argv[]) 
{
ICLRMetaHost *pMetaHost = NULL;
HRESULT hr;
ICLRRuntimeInfo *runtimeInfo = NULL;
__try
{
hr = CLRCreateInstance(CLSID_CLRMetaHost, IID_ICLRMetaHost, (LPVOID*)&pMetaHost);
hr = pMetaHost->GetRuntime(L"v4.0.30319",IID_ICLRRuntimeInfo,(LPVOID*)&runtimeInfo);
ICLRRuntimeHost *runtimeHost = NULL;
hr = runtimeInfo->GetInterface(CLSID_CLRRuntimeHost,IID_ICLRRuntimeHost, (LPVOID*)&runtimeHost);
ICLRControl* clrControl = NULL;
hr = runtimeHost->GetCLRControl(&clrControl);
hr = clrControl->SetAppDomainManagerType(L"ExceptionThrower.dll",L"ExceptionThrower.HostAppDomainManager");
hr = runtimeHost->Start();
}
__except(1)
{
wprintf(L"\n Error thrown %d",e);
}
return 0;
}

对 runtimeHost->Start() 的调用失败,错误代码为 -2146233054,谁能指出我应该如何解决这个问题?

最佳答案

如果其他人遇到这个问题,问题是实现 AppDomainManager 的 dll 应该是强命名的。

所以把代码改成

hr = clrControl->SetAppDomainManagerType(L"ExceptionThrower, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d3b6b01f2067f563",L"ExceptionThrower.HostAppDomainManager");

关于c# - 自定义 AppDomainManager 启动 runtimeHost 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7909644/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com