2014-09-24 37 views
0

我正在啓動Process.Start(「MyProcess.exe」)函數的進程。使用C#中的不同DLL路徑啓動進程

「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); 
+0

是DLL一個.NET的DLL或原生一? – 2014-09-24 13:03:40

+0

您可以通過應用程序配置文件將編譯時綁定重定向到其他程序集。看看[重定向程序集版本](http://msdn.microsoft.com/en-us/library/7wd6ex19(v = vs.110).aspx) – 2014-09-24 13:04:18

回答

1

因爲建在rules within the operating system不工作時,系統總是搜索的目錄按以下順序:

  • 的目錄從中加載應用程序
  • 系統目錄。
  • 16位系統目錄。
  • Windows目錄。
  • 當前目錄。
  • PATH環境變量中列出的目錄。
相關問題