亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從 GAC 加載程序集

從 GAC 加載程序集

C#
子衿沉夜 2023-07-09 18:00:26
我目前正在開發一個需要使用自定義 dll 進行身份驗證的項目。這個 dll 已在生產和測試環境的 GAC 中注冊(他們是這么告訴我的)。公司政策規定您“不應在應用程序的 web.config 文件中包含 dll 引用”,也就是說,您不應具有以下內容:<添加程序集="" ....="" mydll=""> 等。在你的 web.config 中,至少對于我正在談論的這個 dll 來說是這樣。他們說,由于它已在 GAC 中注冊,因此應用程序無論如何都會加載它。問題是,如果您不在 web .config 中添加程序集引用,則應用程序將找不到它,無論他們說什么。因為我確信該 dll 實際上已在 GAC 中注冊,所以我的問題是:無論您是否在 web.config 中添加引用,應用程序都不能加載 dll 嗎?我確信,添加對項目的引用后,dll 的 GAC 位置將存儲在應用程序的程序集中,以便應用程序本身能夠在 GAC 中找到程序集,無論工作系統是什么,給定該 dll 實際上已在工作系統的 GAC 中注冊。但我一定是錯的。它的真正運作方式是什么?我嘗試從 web.config 中刪除 <add assembly ...> 條目:每次在我的測試環境中引用 dll 中的方法時,都會出現運行時錯誤;生產環境中也會發生同樣的事情;
查看完整描述

1 回答

?
30秒到達戰場

TA貢獻1828條經驗 獲得超6個贊

無論您是否在 web.config 中添加引用,應用程序都不能加載 dll 嗎?

按照邏輯,應用程序在啟動時會加載 GAC 中的每個程序集,您能想象那會有多慢嗎?不,事情不是這樣的。

當您在項目中本地引用 DLL 時,您所做的就是將其添加到清單中,告訴應用程序將其作為應用程序的一部分加載。當 CLR 加載時,它首先會檢查 GAC 中是否存在 DLL 的等效版本,如果存在,它將加載該版本,如果不存在,它將嘗試加載本地版本。

查看完整回答
反對 回復 2023-07-09
  • 1 回答
  • 0 關注
  • 126 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號