我有一個託管程序集加載問題源自衍生的混合模式進程。詳情請參閱下文。假設BinPath和ExecutablePath是兩個不同的有效路徑。裝配加載失敗
我有一個在BinPath開始一個web應用程序,並創建使用下面的ProcessStartInfo的過程:
new ProcessStartInfo()
{
FileName = ExecutablePath + "PerformanceRunner.exe",
WorkingDirectory = ExecutablePath ,
UseShellExecute = true
};
PerformanceRunner.exe然後成功加載駐留在ExecutablePath(這是通過觀察驗證幾個託管DLL在VS的模塊窗口中)。然後它會嘗試加載位於ExecutablePath中的託管程序集,但這會失敗。這裏是融合日誌 - 注意BinPath是「G:\ TOPSS \ TOPSS New \ Common \ Service \ Bin」,託管程序集是TPSSCDQ.dll。 TPSSCDQ駐留在ExecutablePath中。
*大會粘結劑日誌條目(2012年11月29日@下午4時16分11秒)*
操作失敗。綁定結果:hr = 0x80070002。系統不能 找到指定的文件。 C:從加載
大會經理\的Windows \ Microsoft.NET \框架\ v4.0.30319 \ clr.dll下 可執行摹運行:\ TOPSS \ TOPSS新建\ COMMON \服務\ BIN \ PerformanceRunner.exe
===預綁定狀態信息===
LOG:用戶= CORP \ lbhra
LOG:DisplayName的= TpssCDQ,版本= 1.0.4612.26218文化=中性, 公鑰=空(完全指定的)
LOG:應用平臺=文件:/// G:/ TOPSS/TOPSS新建/公共/服務/濱/
LOG:初始PrivatePath = NULL
LOG:動態基地= NULL
LOG:高速緩存基址= NULL
LOG:AppName的= PerformanceRunner.exe
調用組件:(未知)。
===
LOG:此綁定默認加載上下文開始。
LOG:找不到應用程序配置文件。
LOG:使用主機配置文件:
LOG:從 C使用計算機配置文件:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \ CONFIG \ machine.config中。
LOG:政策沒有被在這個時間(私人, 定製,部分,或基於位置的組件綁定)施加到參考。
LOG:試圖下載新的URL文件:/// G:/ TOPSS/TOPSS New/Common/Service/Bin/TpssCDQ.DLL。
LOG試圖下載新的URL文件:/// G:/ TOPSS/TOPSS New/Common/Service/Bin/TpssCDQ/TpssCDQ.DLL。
LOG:嘗試新的URL文件下載:/// G:/ TOPSS/TOPSS 新/通用/服務/斌/ TpssCDQ.EXE。
LOG試圖下載新的URL文件:/// G:/ TOPSS/TOPSS New/Common/Service/Bin/TpssCDQ/TpssCDQ.EXE。
LOG:所有探測URL嘗試失敗。
我不完全理解的PrivatePath,應用平臺或DYNAMICBASE是,但不應將這些路徑中的至少一個是工作目錄(ExecutablePath)?我已驗證使用GetCurrentDirectory工作目錄設置正確。我真的很感激這個,因爲我很困惑。