我有一个项目A,反射调用了一个程序集B,程序集B反射调用了程序集C,程序集C有自己的依赖dll,并且不在项目A的运行目录下。如何修改程序集B,使其加载C及C的依赖dll,而不受项目A运行目录下的程序集影响
已解决,之前用的反射加载Assembly.LoadFile,现在改为Assembly.LoadFrom,此方法会加载程序集的依赖文件。
参考: https://www.cnblogs.com/zagelover/articles/2726034.html
我有一个项目A,反射调用了一个程序集B,程序集B反射调用了程序集C,程序集C有自己的依赖dll,并且不在项目A的运行目录下。如何修改程序集B,使其加载C及C的依赖dll,而不受项目A运行目录下的程序集影响
已解决,之前用的反射加载Assembly.LoadFile,现在改为Assembly.LoadFrom,此方法会加载程序集的依赖文件。
参考: https://www.cnblogs.com/zagelover/articles/2726034.html
有三个办法
(1) gacutil 注册到全局 gac 里面,这样无论在哪里的exe都能访问(适合编写多个程序共享的类库)
(2) app.config 里面 <probing privatePath="你的路径"/> (适合dll专用这个项目)
(3) Assembly.LoadFrom(路径) 反射加载,调用(适合临时加载的插件)