Определить версию DLL, связанной с - PullRequest
0 голосов
/ 12 января 2011

Согласно этой статье , версия DLL, на которую ссылаются, встроена в исполняемый файл.

Используя ProcExp, я вижу, что загруженная dll-библиотека времени выполнения является действительно последней доступной на моем компьютере dll, но мне интересно узнать связанную версию.

В качестве примечания я собрал проект с использованием VS9 msbuild и заинтересовался версией VC runtime (msvcr90.dll). В папке перенаправления VC9 это 9.0.30729.1, во время выполнения загружается .4926.

Мои вопросы:

  • Есть ли какой-нибудь инструмент, с помощью которого я могу извлечь версию dll, связанную с (из dll / exe)?
  • На какую версию VS ссылается по умолчанию? Тот, который найден в его папке для пересылки?

Спасибо.

Ответы [ 2 ]

1 голос
/ 13 января 2011

На самом деле, Dependency Walker, похоже, не читает (или, по крайней мере, не отображает) версию, связанную в файле.

Но я обнаружил, что могу использовать mt.exe из Windows SDK или ResEdit для чтения встроенных манифестов.

Также, чтобы суммировать мои выводы (нацеливание на amd64 с использованием msbuild с Windows SDK для Win7, которая, кажется, использует библиотеки VS9 (SP1?)):

  • Без особых усилий во встроенном манифесте записывается версия 9.0.21022.8 ЭЛТ VS9 (не SP1). Может быть, это базовая платформа VS9.
  • Во время выполнения загружается новейшая dll в соответствии с политикой SxS (хорошее чтение можно найти здесь вместе со статьей, на которую есть ссылка в вопросе).
  • У людей, похоже, возникли проблемы, когда соответствующие политики не установлены (например, через пакет redist), см. здесь и [здесь] и 4 [здесь] 5 .
  • Последний SO сообщает, что если определено _BIND_TO_CURRENT_VCLIBS_VERSION=1, то компоновщик будет связываться с CRT VS9 SP1 (версия 9.0.30729.1), который, как уже отмечалось ранее, действительно находится в папке redist.

Для будущего аккаунта было бы неплохо, если бы:

  • Будет таблица с ЭЛТ-версией X.Y. введено в OS / SP / etc Z.W.
  • Если кто-то может знать, что это безопасная версия для таргетинга, которая, возможно, доступна на большинстве компьютеров пользователей по умолчанию.
1 голос
/ 12 января 2011

Обходчик зависимости может сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...