2012-03-05 2 views
1

Я установил бета-версию Visual Studio 2011 и обнаружил, что веб-сайт, с которого я работал, с тех пор перестает работать. Было высказано предположение, что имеется сборка MVC или Razor от GAC, которая загружается и захватывает. Как я могу это проверить?Как определить, загружается ли сборка GAC

ответ

3

Запустите приложение в режиме отладки и просмотрите Output window в Visual Studio. Он будет перечислять каждую сборку по мере ее загрузки, вы легко узнаете сборки GAC по ее полному пути к файлу.

2

Просто интересно, давайте сделаем это во время работы. Идея - проверить свойство Assembly.GlobalAssemblyCache всех загруженных сборок MVC.

Поместите следующий фрагмент код где-то в 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 фильтр в качестве примера):

[Ложная] log4net, Version = 1.2.10.0, культура = нейтральной, PublicKeyToken = 1b44e1d426115821

Смежные вопросы