C# 无法在新appdomain中加载C模块
我有一些.NET代码需要在单独的AppDomain中运行,除了调用COM组件外,一切都很顺利。C# 无法在新appdomain中加载C模块,c#,com,appdomain,C#,Com,Appdomain,我有一些.NET代码需要在单独的AppDomain中运行,除了调用COM组件外,一切都很顺利。 为了清楚起见,我写了一篇非常简单的报告如下: AppDomain ap = AppDomain.CreateDomain("newap"); ap.DoCallBack( () => { //GroupPolicyObject is from assembly microsoft.grouppolicy.management.interop.dll
为了清楚起见,我写了一篇非常简单的报告如下:
AppDomain ap = AppDomain.CreateDomain("newap");
ap.DoCallBack(
() =>
{
//GroupPolicyObject is from assembly microsoft.grouppolicy.management.interop.dll
GroupPolicyObject newGPO = new GroupPolicyObject();
});
例外情况:
System.TypeInitializationException:的类型初始值设定项
“”引发了异常。-->
模块化:C++模块失败
在尝试初始化默认appdomain时加载。-->
System.Runtime.InteropServices.COMException:操作无效。
(来自HRESULT的异常:0x8013022)位于
System.Runtime.InteropServices.Marshal.ThroweExceptionForhr内部(Int32
错误代码,IntPtr errorInfo)位于
.GetDefaultDomain()位于
.DoCallBackInDefaultDomain(IntPtr函数,
Void*cookie)在
.LanguageSupport.\u初始化(LanguageSupport*
)在
.LanguageSupport.Initialize(语言支持*
)---内部异常堆栈跟踪的结束---at
.ThrowModuleLoadException(字符串
错误消息,异常(内部异常)位于
.LanguageSupport.Initialize(语言支持*
)at.cctor()
代码可以在默认域中传递,并且不应该是与.NET framework版本相关的问题
我在互联网上做了很多搜索,但是没有有用的解决方案。有人知道问题出在哪里以及如何解决吗?最后我通过添加
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
</startup>
在cofig文件中
这是非常有用的。仅仅因为它在默认AppDomain中工作并不意味着它不是由于.NET Framework版本。尝试创建一个独立的复制器,然后尝试.NET 2.0和4.0。是的,我已经尝试了这两种,但结果相同。