我目前正在開發(fā)一個需要使用自定義 dll 進(jìn)行身份驗證的項目。這個 dll 已在生產(chǎn)和測試環(huán)境的 GAC 中注冊(他們是這么告訴我的)。公司政策規(guī)定您“不應(yīng)在應(yīng)用程序的 web.config 文件中包含 dll 引用”,也就是說,您不應(yīng)具有以下內(nèi)容:<添加程序集="" ....="" mydll=""> 等。在你的 web.config 中,至少對于我正在談?wù)摰倪@個 dll 來說是這樣。他們說,由于它已在 GAC 中注冊,因此應(yīng)用程序無論如何都會加載它。問題是,如果您不在 web .config 中添加程序集引用,則應(yīng)用程序?qū)⒄也坏剿?,無論他們說什么。因為我確信該 dll 實際上已在 GAC 中注冊,所以我的問題是:無論您是否在 web.config 中添加引用,應(yīng)用程序都不能加載 dll 嗎?我確信,添加對項目的引用后,dll 的 GAC 位置將存儲在應(yīng)用程序的程序集中,以便應(yīng)用程序本身能夠在 GAC 中找到程序集,無論工作系統(tǒng)是什么,給定該 dll 實際上已在工作系統(tǒng)的 GAC 中注冊。但我一定是錯的。它的真正運(yùn)作方式是什么?我嘗試從 web.config 中刪除 <add assembly ...> 條目:每次在我的測試環(huán)境中引用 dll 中的方法時,都會出現(xiàn)運(yùn)行時錯誤;生產(chǎn)環(huán)境中也會發(fā)生同樣的事情;
1 回答

30秒到達(dá)戰(zhàn)場
TA貢獻(xiàn)1828條經(jīng)驗 獲得超6個贊
無論您是否在 web.config 中添加引用,應(yīng)用程序都不能加載 dll 嗎?
按照邏輯,應(yīng)用程序在啟動時會加載 GAC 中的每個程序集,您能想象那會有多慢嗎?不,事情不是這樣的。
當(dāng)您在項目中本地引用 DLL 時,您所做的就是將其添加到清單中,告訴應(yīng)用程序?qū)⑵渥鳛閼?yīng)用程序的一部分加載。當(dāng) CLR 加載時,它首先會檢查 GAC 中是否存在 DLL 的等效版本,如果存在,它將加載該版本,如果不存在,它將嘗試加載本地版本。
- 1 回答
- 0 關(guān)注
- 135 瀏覽
添加回答
舉報
0/150
提交
取消