Как определить, в какую структуру загружается сборка?

StackOverflow https://stackoverflow.com/questions/3515459

  •  29-09-2019
  •  | 
  •  

Вопрос

Пользователь сообщил нам, что какое -то странное поведение в нашем приложении может быть решено после установки .NET 4:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup>
    <supportedRuntime version="v2.0.50727" />
  </startup>
</configuration>

Я не знал, что если вы не указали сборку, она может быть загружена в более высокую, но совместимую версию.

Можно ли определить, какую структуру выполняет исполняемый файл? во время выполнения? или через какой -то внешний процесс? Я хочу подтвердить, что это так, и опыт пользователей не является результатом какой -либо другой проблемы.


Процесс -исследователь говорит, что Evemon работает в соответствии с 2.0, я склонен подозревать, что проблема была экологической:

Process Explorer

Это было полезно?

Решение

Из запущенного кода вашей сборки вы можете использовать статическое свойство System.Environment.version для определения версии CLR, в которой она выполняет.

Если вы не хотите менять код сборки, вы можете использовать Процесс проводник Чтобы увидеть DLL, загруженные в процесс во время выполнения. Версия CLR может быть идентифицирована из версии mscore.dll.

Другие советы

Не имеет смысла, программа, которая была предназначена для CLR версии 2.0.50727, не будет автоматически работать с .NET 4.0. Требуется явная запись .config File. Учитывая мастерство вашего клиента с файлами .config, это может быть то, что она на самом деле сделала, а затем обнаружила, что были проблемы.

Как сказала Николь Исследователь, безусловно, самый простой путь. Вы также можете получить эту информацию с полной дампы памяти с помощью WindDBG.

Также обратите внимание, что с 4.0 вы получаете бок о бок CLR хостинг. Отказ До 4.0, если у вас не было процесса, который у вас был Нет возможности узнать, что CLR загружен. Отказ Это может быть причиной, по которой вы эксперинкционировали поведение, которое вы описали.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top