Как я определяю, используются ли Собственные изображения без Загрузчика verifing подпись блока во времени выполнения, или даже использующей блок GAC'ed?
У меня есть сложная система, что мы экспериментируем с NGen, но в настоящее время мы выполняем exe от папки, где весь DLL расположен из-за большого количества зависимостей от позднего связывания, смотря на Проводник Процесса, похоже, что Собственные изображения используются, но как я могу быть уверен, что извлекаю всю пользу и устраняю шаг Проверки Загрузчика?
С наилучшими пожеланиями, Graeme.
Обновление: я получаю много этого вида вещи из Средства просмотра журнала Привязки сборки:
LOG: [Level 1]Start validating IL dependency MyCompany.Entities, Version=2.0.0.0, Culture=neutral, PublicKeyToken=7cd8595f4671c5dd.
LOG: Dependency evaluation succeeded.
и в конце
LOG: Validation of dependencies succeeded.
LOG: Start loading all the dependencies into load context.
LOG: Loading of dependencies succeeded.
LOG: Bind to native image succeeded.
Native image has correct version information.
Attempting to use native image C:\Windows\assembly\NativeImages_v2.0.50727_32\MyCompany.Mylibrary#\4710bb8309419d707681bd360088181f\MyCompany.MyLibrary.MyClass.ni.dll.
ZAP: Native image has been relocated.
Native image successfully used.
Таким образом, это использует Собственные изображения, но все еще проверяет их, т.е. не использует версию GAC даже при том, что это - то, где я создал Собственное изображение из, Как так:
ngen install "MyCompany.Entites, Version=2.0.0.0, Culture=neutral, PublicKeyToken=7cd8595f4671c5dd, processorArchitecture=MSIL"
Сноска: Это обвиняет, кажется, подразумевает, что, если блоки не загружаются из GAC затем, процесс проверки сместит преимущества NGen? CLR Наизнанку - Улучшение Производительности Запуска Приложения (MSDN)
Обновление - Как Nobugz указало в комментарии ниже, упомянутый выше шаг проверки не выполняется начиная с 3.5 документов SP1 see:MSDN о NGen
Обычно это то, для чего вы бы использовали дикт, а вовсе не класс.
-121--1466773-Можно открыть глобальный параметр (User! Language), который отражает язык пользователя.
Затем вы можете использовать google translateapi для преобразования слов на английском языке в ваш язык.
Вот отличная статья: http://mscrm4u.blogspot.com/2008/06/multi-lingual-ssrs-reports.html
-121--3294758-Вы легко можете увидеть его с помощью инструмента Fuslogvw.exe. Запустите его из командной строки Visual Studio. Настройте его с помощью Категории журнала = Собственные образы, Параметры + Журнал всех привязок к диску. Запустите программу. Вернитесь к fuslogvw, Refresh. Появится список всех загруженных сборок.
Дважды щелкните запись, чтобы увидеть, как была загружена сборка. Если он получен из GAC, вы увидите:
LOG: IL сборка загружена из C :\Windows\assembly\GAC _ MSIL\blahblah
Если образы Ngen-ed были использованы, вы увидите:
LOG: Привязка к нативному образу выполнена успешно.
Вы можете довольно легко увидеть, пришла ли сборка из GAC:
Assembly assembly = Assembly.GetExecutingAssembly();
if (assembly.GlobalAssemblyCache)
{
Console.WriteLine("I'm in the GAC!");
}
РЕДАКТИРОВАТЬ: нашел способ ...
Чтобы узнать, является ли она NGEN'd, вы должны прочитать сборку напрямую и увидеть если поле заголовка предварительной компиляции содержит данные, соответствующие этой странице . Я немного устарел, чтобы добраться до этого значения, но это должно сработать. Я не вижу способа понять это с помощью методов отражения.