C 如何引導程式執行目錄外的程式集

2021-06-16 18:48:10 字數 1745 閱讀 1558

我們的應用程式部署的時候,目錄結構一般不會只有執行程式的目錄這乙個,我們可能在執行目錄下建子目錄,也可能使用system32目錄,也可能使用其它第三方的程式集。.net程式集

首先會在gac中搜尋相應的版本,如果未找到則會應用程式配置檔案中找(如果配置),最後到應用程式所在的路徑搜尋。

<

configuration

>

... ...

<

runtime

>

<

assemblybinding

xmlns

="urn:schemas-microsoft-com:asm.v1"

>

<

probing

privatepath

="plugins;libs"

/>

assemblybinding

>

runtime

>

configuration

>

當然我們也可以更詳細的配置,不過似乎一般這麼用的很少,這裡可以指定程式集名稱、公鑰、文化,版本重定向等等資訊

<

configuration

>

<

runtime

>

<

assemblybinding

xmlns

="urn:schemas-microsoft-com:asm.v1"

>

<

dependentassembly

>

<

assemblyidentity

name

="myassembly"

publickeytoken

="32ab4ba45e0a69a1"

culture

="neutral"

/>

<

bindingredirect

oldversion

="1.0.0.0"

newversion

="2.0.0.0"

/>

<

codebase

version

="2.0.0.0"

href

=""/>

dependentassembly

>

assemblybinding

>

runtime

>

configuration

>

如何載入非執行目錄的程式集?也許有的人會想到反射,的確對應單獨的乙個程式集我們可以直接呼叫使用 assembly.loadfile(@"***.dll");載入,再使用反射對其中的方法屬性進行調

用,但是如果這個程式集同時引用了其它的,非應用程式執行目錄下的程式集,這時就會出錯,這個問題該如何解決呢?

在監聽的事件中遇到要載入額外的dll的時候,返回 assembly.loadfrom(strtempassmbpath)即可

assembly currentdomain_assemblyresolve(object

sender, resolveeventargs args)

return

string.isnullorwhitespace(strtempassmbpath) ? null

: assembly.loadfrom(strtempassmbpath);

}

C 如何引導程式執行目錄外的程式集

我們的應用程式部署的時候,目錄結構一般不會只有執行程式的目錄這乙個,我們可能在執行目錄下建子目錄,也可能使用system32目錄,也可能使用其它第三方的程式集。net程式集 首先會在gac中搜尋相應的版本,如果未找到則會應用程式配置檔案中找 如果配置 最後到應用程式所在的路徑搜尋。configura...

C 獲取程式執行目錄當前目錄

獲取程式的基目錄。獲取模組的完整路徑。system.diagnostics.process.getcurrentprocess mainmodule.filename 獲取和設定當前目錄 該程序從中啟動的目錄 的完全限定目錄。system.environment.currentdirectory 獲...

作業系統如何引導程式

1.使用者編寫完 後,通過編譯器將編譯為資料段 段 堆疊段 bss段,由鏈結器鏈結為裝入模組 2.使用者通知作業系統要執行的程式 3.作業系統根據路徑找到對應的程式,檢測程式的頭部,找到 段和資料段的位置 4.檔案系統根據這些段的位置找到對應的磁碟塊 5.作業系統建立程序 建立執行環境 並將要執行的...