如何发布用C ++加载的DotNet程序集

时间:2012-12-07 15:49:15

标签: c++ .net c++-cli

我在C ++ DLL中有以下代码。它加载并调用使用C#构建的DotNet DLL中的方法。

Assembly^ a = Assembly::LoadFrom(gcnew String("MyDotNet.dll"));
Type^ type = a->GetType("MyAssemply.Assembly");
MethodInfo^ method = type->GetMethod("MyMethod");
Object^ obj = Activator::CreateInstance(type);
array<Object^>^ params = gcnew array<Object^>(0) {  };
Object^ ret = method->Invoke(obj, params);

问题是,即使我在C ++ DLL上执行FreeLibrary,它似乎也不会释放资源或DLL。是否需要调用API或方法来释放DLL /资源?

我正在使用Visual Studio 2010。

感谢。

1 个答案:

答案 0 :(得分:1)

您无法从应用池中卸载托管程序集。您可以创建另一个应用程序池并卸载它。

这篇文章是相关的:How to unload an assembly from the primary AppDomain?