在C#中使用不同的DLL路径启动进程

时间:2014-09-24 12:53:09

标签: c# dll environment-variables

我正在使用Process.Start(“MyProcess.exe”)函数启动Process。

“MyProcess.exe”使用DLL。 Exe和DLL在同一个文件夹中。

我修改了这个DLL并将其放在具有相同名称的不同路径中。

在某些情况下,我想用修改后的DLL启动MyProcess.exe,我不想删除原始DLL。

我的Exe应该使用位于不同文件夹的秒DLL,并且不应该使用位于相同文件夹的DLL。

我试过以下代码,但对我不起作用

processStartInfo.EnvironmentVariables["PATH"] = "PATH_B;" + processStartInfo.EnvironmentVariables["PATH"];

processStartInfo.WorkingDirectory = Path.GetDirectoryName("PATH_B");
processStartInfo.UseShellExecute = false;

myProcess = Process.Start(processStartInfo);

2 个答案:

答案 0 :(得分:1)

由于内置rules within the operating system,系统始终按以下顺序搜索目录:

  • 加载应用程序的目录。
  • 系统目录。
  • 16位系统目录。
  • Windows目录。
  • 当前目录。
  • PATH环境变量中列出的目录。

答案 1 :(得分:0)

如果DLL具有不同的版本,则使用

Specifying an Assembly's Location

在MyProcess.exe的配置文件中,如果是.Net