第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

.NET 4.0有一個新的GAC,為什么?

.NET 4.0有一個新的GAC,為什么?

子衿沉夜 2019-07-31 14:51:16
.NET 4.0有一個新的GAC,為什么?%windir%\Microsoft.NET\assembly\是新的GAC。這是否意味著現(xiàn)在我們必須管理兩個GAC,一個用于.NET 2.0-3.5應(yīng)用程序,另一個用于.NET 4.0應(yīng)用程序?問題是,為什么?
查看完整描述

3 回答

?
明月笑刀無情

TA貢獻(xiàn)1828條經(jīng)驗 獲得超4個贊

是的,因為有2個不同的全局程序集緩存(GAC),您必須單獨管理它們中的每一個。

在.NET Framework 4.0中,GAC經(jīng)歷了一些更改。GAC分為兩個,每個CLR一個。

用于.NET Framework 2.0和.NET Framework 3.5的CLR版本是CLR 2.0。前兩個框架版本中沒有必要拆分GAC。在Net Framework 4.0中破壞舊應(yīng)用程序的問題。

為了避免CLR 2.0和CLR 4.0之間的問題,GAC現(xiàn)在分為每個運行時的私有GAC。主要的變化是CLR v2.0應(yīng)用程序現(xiàn)在無法在GAC中看到CLR v4.0程序集。

資源

為什么?

這似乎是因為.NET 4.0中存在CLR更改,而不是2.0到3.5。1.1到2.0 CLR也發(fā)生了同樣的事情。似乎GAC能夠存儲不同版本的程序集,只要它們來自同一個CLR。他們不想破壞舊的應(yīng)用程序。

請參閱MSDN中有關(guān)4.0中GAC更改的以下信息。

例如,如果.NET 1.1和.NET 2.0共享相同的GAC,則從此共享GAC加載程序集的.NET 1.1應(yīng)用程序可能會獲得.NET 2.0程序集,從而破壞.NET 1.1應(yīng)用程序

用于.NET Framework 2.0和.NET Framework 3.5的CLR版本是CLR 2.0。因此,前兩個框架版本中沒有必要拆分GAC。破解舊版本(在本例中為.NET 2.0)應(yīng)用程序的問題在Net Framework 4.0中重新出現(xiàn),此時CLR 4.0已發(fā)布。因此,為了避免CLR 2.0和CLR 4.0之間的干擾問題,GAC現(xiàn)在分為每個運行時的私有GAC。

隨著CLR在未來版本中的更新,您可以期待同樣的事情。如果只有語言更改,那么您可以使用相同的GAC。


查看完整回答
反對 回復(fù) 2019-07-31
?
青春有我

TA貢獻(xiàn)1784條經(jīng)驗 獲得超8個贊

它沒有多大意義,原始的GAC已經(jīng)能夠存儲不同版本的程序集。并且沒有理由認(rèn)為程序會偶然引用錯誤的程序集,所有.NET 4程序集都會使[AssemblyVersion]達(dá)到4.0.0.0。新的進程內(nèi)并排功能不應(yīng)改變這一點。

我的猜測:已經(jīng)有太多的.NET項目打破了“永遠(yuǎn)不會引用GAC中的任何內(nèi)容”規(guī)則。我已經(jīng)在這個網(wǎng)站上看了好幾次。

只有一種方法可以避免破壞這些項目:移動GAC。Back-compat在微軟是神圣的。


查看完整回答
反對 回復(fù) 2019-07-31
  • 3 回答
  • 0 關(guān)注
  • 510 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號