На самом деле, 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.
- Если кто-то может знать, что это безопасная версия для таргетинга, которая, возможно, доступна на большинстве компьютеров пользователей по умолчанию.