3

托管 DLL 在 GAC 中时可以使用公钥令牌和程序集名称加载。

MetaDataAssemblyEmit->DefineAssemblyRef(pbPublicKeyOrToken, publicKeySize, assemblyName, &assemblyMetaData, NULL, 0, 0, &mdAssemblyRef);

我想从物理路径加载 DLL 引用,而不是从 GAC 加载。

我尝试了下面的代码,

LoadLibrary(L"C:\Packages\MyDotNetAssembly.dll");

上面的代码将 DLL 加载到进程中,它没有将 DLL 加载到 CLR 运行时。所以DefineAssemblyRef 找不到DLL。收到以下错误,

无法加载文件或程序集“MyDotNetAssembly,Version=1.0.0.0,Culture=neutral,PublicKeyToken=8b6549a3d401ea66”或其依赖项之一。该系统找不到指定的文件。

如何将托管 DLL 加载到当前运行时或应用程序域中,以使其通过 C++ 代码工作?

4

0 回答 0