我可以从物理路径加载托管C#DLL,而不是通过CLRProfiler从GAC加载

时间:2018-04-17 12:19:02

标签: clr profiler clr-profiling-api

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

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 ++代码工作?

0 个答案:

没有答案