【问题标题】:How to identify if a GAC assembly is loading如何识别 GAC 程序集是否正在加载
【发布时间】:2012-03-05 18:09:57
【问题描述】:

我已经安装了 Visual Studio 2011 beta,并且发现我正在开发的网站已经停止工作。有人建议有一个来自 GAC 的 MVCRazor 程序集正在加载和接管。我将如何检查这个?

【问题讨论】:

    标签: asp.net .net visual-studio-2010 gac .net-assembly


    【解决方案1】:

    在调试模式下运行应用程序并在 Visual Studio 中观察Output window。它将列出加载的每个程序集,您将通过其完整文件路径轻松识别 GAC 程序集。

    【讨论】:

      【解决方案2】:

      只是感兴趣,让我们在运行时进行。这个想法是 - 检查所有加载的 MVC 程序集的 Assembly.GlobalAssemblyCache 属性。

      将以下代码 sn-p 放在Page_Load() 的某处,并在文件中查看是否从 GAC 加载了特定程序集:

      using System.Linq;
      var items = AppDomain.CurrentDomain
                           .GetAssemblies()
                           .Where(a => a.FullName.Contains("MVC"))
                           .Select(a => String.Format(
                                               CultureInfo.InvariantCulture,
                                               "[{0}] {1}",
                                               a.GlobalAssemblyCache,
                                               a.FullName));
      
      File.WriteAllLines("c:\\assembliesdump.txt", items .ToArray());   
      

      输出将如下所示(以log4net过滤器为例):

      [False] log4net,版本=1.2.10.0,文化=中性, PublicKeyToken=1b44e1d426115821

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-14
        • 1970-01-01
        • 2010-12-14
        • 1970-01-01
        相关资源
        最近更新 更多