Dot-Net
Gacutil.exe 成功添加程序集,但在資源管理器中無法查看程序集。為什麼?
我正在從 Visual Studio 命令提示符 2010 中執行 GacUtil.exe,以將 dll (CatalogPromotion.dll) 註冊到 GAC。執行該實用程序後,它顯示
Assembly Successfully added to the cache並執行gacutil /l CatalogPromotionDll顯示 GAC 包含程序集,但是當我從 Windows 資源管理器導航到 C:\WINDOWS\assembly 時看不到程序集。 為什麼我在 Windows 資源管理器中看不到 WINDOWS\assembly 中的程序集,但我可以使用 gacutil.exe 看到它?背景:這是我在 VS Tools 的命令提示符中輸入的內容:
C:\_Dev Projects\VS 項目\bmccormack\CatalogPromotion\CatalogPromotionDll\bin \調試> **gacutil /i CatalogPromotionDll.dll** Microsoft (R) .NET 全域程序集記憶體實用程序。版本 4.0.30319.1 版權所有 (c) 微軟公司。版權所有。 **程序集成功添加到記憶體** C:\_Dev Projects\VS 項目\bmccormack\CatalogPromotion\CatalogPromotionDll\bin \Debug> **gacutil /l CatalogPromotionDll** Microsoft (R) .NET 全域程序集記憶體實用程序。版本 4.0.30319.1 版權所有 (c) 微軟公司。版權所有。 全域程序集記憶體包含以下程序集: CatalogPromotionDll,版本=1.0.0.0,文化=中性,PublicKeyToken=9188a175 f199de4a,處理器架構=MSIL **項目數 = 1**但是,該程序集不會顯示在 C:\WINDOWS\assembly 中。
那是因為您使用的是 .NET 4.0 版本的 gacutil.exe。它將程序集儲存在不同的GAC 中,即 c:\windows\microsoft.net\assembly 中的那個。儲存所有 .NET 4.0 程序集的位置。該文件夾沒有外殼擴展處理程序,文件夾按原樣可見。您可以使用 Windows 資源管理器進行查看。您將看到 GAC 文件夾的內部結構。找回您的程序集應該不會有任何問題,GAC 並不是特別複雜。
如果該程序集旨在由針對早期版本 .NET 的應用程序使用,那麼您應該使用儲存在 C:\Program Files\Microsoft SDKs\Windows\v6.0A\ 中的 .NET 2.0 版本的 gacutil.exe斌