簡體   English   中英

為什么不將.NET Framework 4.0 DLL添加到GAC?

[英]Why aren't the .NET Framework 4.0 DLLs added to the GAC?

我注意到.NET DLL的位置有些奇怪。 我試圖調試System.ServiceModel.dll的問題,我注意到即使我安裝了.NET 4.0,我的GAC中也只安裝了3.0版本的ServiceModel DLL(我通過探索C:\\ Windows進行了檢查) \\部件)。 但是,如果我導航到“C:\\ Program Files \\ Reference Assemblies \\ Microsoft \\ Framework.NETFramework \\ v4.0 \\ Profile \\ Client”,則4.0版本就位於此處。 那么為什么.NET不將4.0版本安裝到GAC中呢?

考慮到它沒有,我的4.0程序如何知道在哪里可以找到4.0 DLL? 我上面給出的文件路徑是自動探測的嗎? 我回頭看了我的應用程序,它使用4.0 DLL來確認它不會在本地復制DLL,因此它似乎必須從GAC獲取它(現在我知道DLL不在那里),或者在探測.NETFramework文件夾。 這讓我很困惑......

編輯:我遵循MystereMan的建議並運行“Gacutil.exe / l System.ServiceModel”,但它仍然只顯示3.0版本。 這是否意味着.NET 4畢竟沒有將DLL安裝到GAC中?

編輯#2和解決方案:我的PATH中的gacutil.exe是一個舊版本,無法看到4.0程序集。 通過搜索我的計算機,我在這里找到了4.0版本的gacutil.exe:C:\\ Program Files \\ Microsoft SDKs \\ Windows \\ v7.0A \\ bin \\ NETFX 4.0 Tools。 使用它,我終於可以看到列出了System.ServiceModel.dll的4.0。 謝謝大家的幫助!

謝謝,

- 羅伯特·

.Net 4.0在Windows\\Microsoft.Net\\assembly使用不同的GAC。

Reference Assemblies中的文件是空的存根,僅用於在Visual Studio中為不同的目標框架過濾IntelliSense。
如果你在ILSpy中打開它們,你會發現所有方法都是空的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM