Assembly.Load和Environment.CurrentDirectory

时间:2020-03-06 14:44:56  来源:igfitidea点击:

我意识到这里有一个相关的线程:
加载程序集及其依赖项

但是我正在修改某些内容,但这并不完全适用。

string path = Path.GetDirectoryName( pathOfAssembly ); 
Environment.CurrentDirectory = path;
Assembly.Load(Path.GetFileNameWithoutExtension(pastOfAssembly));

我们真的有任何理由要这样做吗?仅使用它是否更有意义:

Assembly.LoadFile(pathOfAssembly);

任何见识将不胜感激。

解决方案

看起来像"冗余部"。

代码比必要的多得多。少即是多!

编辑:再次考虑,可能是我们正在加载的程序集具有依赖关系,这些依赖关系位于使用第一个程序集可能需要的其自己的文件夹中。

当我们开发Windows服务时,这可能是必需的。服务的工作目录默认为%WinDir%,因此,如果要从服务exe所在的目录中加载程序集,这是一种方法。