sxs dll не найден сразу после входа в систему?

294
bartoli

Я столкнулся со странной проблемой. Приложение (значок панели инструментов exe), которое зависит от среды выполнения x86 Visual C ++ 2008, используемой для нормального запуска. Это на x64 Windows 7 Во время нескольких недавних перезагрузок он заявил, что не удалось запустить вход в систему, с всплывающим сообщением, что mfc90u.dll не найден. Через несколько минут, если я запускаю приложение с помощью значка запуска, оно запускается правильно, и я вижу, как исполняемые библиотеки загружаются из папки winsxs.

Что может сделать dins winsxs недоступными сразу после входа в систему?

0

1 ответ на вопрос

0
Overmind

Winsxs .dll не должны активно использоваться. Они являются версионными резервными копиями. Если для чего-то нужна предыдущая версия .dll, она берется оттуда. Если .dll на самом деле отсутствует, расположение winsxs действует как расположение резервной копии, поэтому для его правильной работы необходимо загрузить несколько зависимостей ядра.

Чтобы решить эту проблему, просто скопируйте mfc90u.dll из winsxs в% windir% \ system32 \ или в каталог, где находится файл .exe программ.

Переустановка последних версий Microsoft Visual C ++ Redistributable также должна решить проблему, так как .dll является частью этих дистрибутивов.

Итак, где еще следует установить «установленные» версии для правильной установки, если winsxs является только резервной копией? C: / Windows / System32 {, SysWOW64}? Переустановка среды выполнения vs2008 (режим восстановления) не приводит к появлению mfc9 * .dll, тогда как я вижу другие MFC * .dll для других версий среды выполнения. bartoli 6 лет назад 0
При установке 32-разрядной версии файл DLL должен находиться в C: \ Windows \ System32, а при установке 64-разрядной версии он должен находиться в C: \ Windows \ SysWOW64. Если они не скопированы туда, это означает, что ОС считает их слишком старыми и будет хранить их только в местах, названных как WinSxS / AMD64_microsoft.vc90 и WinSxS / x86_microsoft.vc90. В качестве уведомления я всегда предпочитаю сбрасывать файлы там, где они нужны .exe. Классический способ - лучший. Overmind 6 лет назад 0