程序集通过%PATH%环境搜索路径

本文关键字:搜索 路径 环境 %PATH% 程序集 | 更新日期: 2023-09-27 17:48:58

我正在开发一个项目,并希望从项目文件夹中分离共享程序集

+ Program Files
    + My Company
       +Commons
          * Assembly1.dll
          * Assembly2.dll
          * Assembly3.dll
          * Assembly4.dll
       +Project1
          * MyProject1.exe
          * MyProject1.exe.config
       +Project2
          * MyProject2.exe
          * MyProject2.exe.config

试图让项目从"Commons"文件夹加载程序集,所以我更改了系统%PATH%环境来搜索dll。

%PATH% = c:'Program files'My Company'Commons;%PATH%

但是它们不查找Path环境(使用ProcessMonitor进行监控)谁能告诉我如何从% path %环境中定义程序集的搜索路径?

程序集通过%PATH%环境搜索路径

string path = System.Environment.GetEnvironmentVariable("Path");
var folders = path.Split(';');
foreach (var folder in folders)
{
    foreach (var file in Directory.GetFiles(folder, "*.*"))
    {
        // found files
    }
}

在应用程序启动时,在AppDomain.AssemblyResolve事件中执行搜索以查找dll。更多活动信息请点击:http://msdn.microsoft.com/en-us/library/system.appdomain.assemblyresolve.aspx

我不相信dotNET在绑定程序集时依赖于路径环境变量。

参见http://ondotnet.com/pub/a/dotnet/2003/03/17/bindingpolicy.html获取dotNET绑定策略。

你可能会发现这个元素在这里很有用:http://msdn.microsoft.com/en-us/library/efs781xb%28v=VS.100%29.aspx