У меня проблема с нашим исполняемым файлом. Я запускаю этот 32-разрядный исполняемый файл на С++ в 64-битном окне разработки Win-7, в котором также есть все эти приложения MS (Visual Studio 2008 + 2010, TFS, SDK, MS Office)... И все еще работает очень хорошо.
Теперь я получил клиентскую установку той же самой программы и попросил ее протестировать с чистой установкой Win-7. Таким образом, я получил 64-разрядную VM Ware Win-7 и обновил ее до Win-7 SP 1 (ту же самую версию, что и моя панель разработчиков). Но в то время как на моем ящике разработчика все в порядке, программа не работает с полем VW Ware (30 дней).
Ходок-зависимая x86 говорит мне, что отсутствуют следующие DLL:
Я искал Google для этих DLL-API-MS-WIN -... и нашел, что они действительно должны быть частью Win-7 (некоторые сайты утверждают, что они принадлежат Win-8 и Win 2012-серверу).
Я уже пробовал предлагаемые исправления, которые я нашел:
Но это ничего не решило.: - (
Боковое примечание: у моей коробки разработки тоже нет их, и они, похоже, не нужны. Например, user32.dll в моем ящике не связывается с одним из них, в то время как установка на VM-машине делает.
Любая идея о том, как исправить эту проблему? Я попытался найти подходящую загрузку/исправление на страницах MS, но не смог.
С уважением, Томас
После решения моей проблемы я хотел сообщить, что я узнал, и я не могу опубликовать это как ответ, потому что вопрос был закрыт.
Фактически, все DLL, о которых сообщается отсутствующим инструментом зависимостей, называются тегами
* API-MS-WIN-CORE-...
Типы DLL не были частью реальной проблемы.
В моем случае была потеряна регистрация 3 файлов OCX, и после этого все было просто отлично, но инструмент для поиска зависимостей по-прежнему отображал все те же самые DLL, что и раньше, даже когда программа просто работала нормально.
Суть его: как сказал кто-то в другом месте, этот инструмент немного устарел и не всегда работает должным образом с более новой ОС. Таким образом, держите глаза открытыми и не вводите в заблуждение, пропуская "API-MS-WIN-CORE-COM-L1-1-0.DLL",... проблема, вероятно, целиком лежит в другом месте.
Эта проблема связана с отсутствием "распространяемого пакета" Visual Studio. Не очевидно, какой из них отсутствует в зависимости от хождения зависимостей, но я сначала попробую тот, который соответствует вашей версии компилятора, и посмотрит, все ли работает правильно:
Я столкнулся с этой проблемой, потому что я использую компиляторы VS, но не полную среду VS.
Я тоже, я просто решил ту же проблему с С++ Qt5 и W7 64bits с MSCVC 2012.
В начале я думал, что это проблема с MSLC/windows dll, но, как сказал BorisP, проблема была в моих зависимостях проекта. Ключ " Как узнать зависимости проекта в Qt5?".
Поскольку я не нашел ясного способа узнать это (Dependency Wolker не очень помог мне...), я последовал за следующей "обратной процедурой", которая занимает не более 5 минут и избегает много головных болей с зависимостями Dll:
Когда у вас есть все DLL файлы в одной папке, легче найти, какие из них недопустимы (XML, webkit... что угодно..), поэтому этот метод не занимает больше пяти минут.
Я только что решил такую же проблему.
Зависимость Уокер вводит в заблуждение в этом случае и заставляет меня терять время. Итак, список "отсутствующих" DLL с первого сообщения не помогает, вы можете, возможно, проигнорировать его.
Решение состоит в том, чтобы найти ссылки на ваш проект и проверить, действительно ли они установлены на сервере.
@Ben Brammer, не важно, какие 3 файла .ocx отсутствуют, потому что они отсутствуют только для проекта Leo T Abraham. Возможно, ваш проект вызывает другие DLL.
В моем случае это не было 3 файла .ocx, но отсутствовала DLL-соединитель MySQL. После установки MySQL Connector для .Net на сервере проблема исчезла.
Итак, вкратце решение: проверьте, имеются ли все ваши ссылки на проект.
Приветствия
Как уже упоминалось, DCOMP является частью распространяемых VС++ (реализация среды OpenMP) и является единственным действительно отсутствующим компонентом. Все остальное - ложные отчеты.
В частности, API-MS-WIN-XXXX.DLL - это API-наборы - по существу, дополнительный уровень направленности вызовов, введенный постепенно, поскольку Windows 7. Развитие зависимостей зависимостей, казалось бы, остановилось задолго до этого, и оно не может правильно обрабатывать наборы API.
Так что не о чем беспокоиться. Вы больше ничего не пропустите.
Лучшей альтернативой для поиска нужных DLL, которые отсутствуют (если это действительно проблема), является запуск ProcessMonitor и откат от отказа, поиск последовательностей неудавшихся зондов для определенной DLL на всем пути к системе.
Я также столкнулся с этой проблемой, но решение, которое, кажется, является общим потоком здесь, и я видел в другом месте в Интернете, это "[установить] распространяемый пакет". Однако для меня это не работает, так как проблема возникла при запуске установщика для нашего продукта (который устанавливает распространяемый пакет), чтобы проверить наши блестящие новые сборки VS 2015.
Проблема возникла из-за того, что перечисленные DLL не находятся на пути установки Visual Studio (например, C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\redist) и, таким образом, не были добавлены в установку. Эти api-ms-win- * dll устанавливаются на установочный путь Windows 10 SDK как часть установки Visual Studio 2015 (например, C:\Program Files (x86)\Windows Kits\10\Redist). Установка на Windows 10 работала нормально, но установка на Windows 7 требовала добавления этих библиотек в нашу установку продукта. Для получения дополнительной информации см. https://support.microsoft.com/en-us/kb/2999226, который описывает добавление этих зависимостей, вызванных VS 2015, и обеспечивает загрузку для различных Платформы Windows; также см. https://blogs.msdn.microsoft.com/vcblog/2015/03/03/introducing-the-universal-crt/, который описывает редизайн библиотек CRT. Особый интерес представляет пункт 6 раздела Распространяющее программное обеспечение, использующее Universal CRT:
Обновлено 11 сентября 2015 г. Поддерживается локальное развертывание Universal CRT. Чтобы получить двоичные файлы для локального развертывания приложений, установите пакет разработки программного обеспечения для Windows (SDK) для Windows 10. Бинарные файлы будут установлены в C:\Program Files (x86)\Windows Kits\10\Redist\ucrt. Вам нужно будет скопировать все DLL файлы с вашим приложением (обратите внимание, что набор DLL файлов необходим для разных версий Windows, поэтому вы должны включить все библиотеки DLL, чтобы ваша программа запускалась во всех поддерживаемых версиях Windows).
Этот вклад на самом деле не отвечает на начальный вопрос, но с учетом скорости потока этого потока я предполагаю, что существует немало людей, которые сталкиваются с проблемой, что библиотеки API-MS-WIN-CORE- не могут быть найдены,
Мне удалось решить проблему, когда мое приложение отказалось начинать с сообщения об ошибке, что API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL не найден простым обновлением Visual Studio.
Я не думаю, что моя среда сборки (Win7 Pro SP1, Visual Studio Ultimate 2012) была полностью испорчена, она отлично работала для большинства моих проектов. Но при некоторых особых обстоятельствах я получил сообщение об ошибке (см. Ниже).
После обновление Visual Studio 11 из исходной версии CD (я забыл посмотреть номер версии) до версии 11.0.61030.00 Update 4 также сломанный проект снова запущен.
Надеюсь, это помогло кому-то!
Это решило проблему для меня.
Удалите распространяемый пакет VS 2010, если вы его уже установили, затем установите Microsoft Windows 7 SDK
Я решил проблему. Когда я зарегистрировал файлы OCX, я запустил его с помощью командного окна, которое было выполнено как администратор.
У меня была та же проблема. После нескольких часов поиска в Интернете я нашел решение для меня. Я поместил файл: combase.dll(C:\windows\system32) вместе в папку reales и разрешил.
Я пришел сюда с этой проблемой, попробовав новую установку Windows 7 OEM, обновив ее до Windows 10.
После некоторого поиска на форумах в Microsoft и я нашел следующее решение, которое сработало для меня:
Замените
C:\Windows10Upgrade\wimgapi.dll
на один изC:\Windows\System32\wimgapi.dll
для любого, кто пришел сюда, но с проблемой фотошопа: мое решение состояло в том, чтобы удалить ms vc++ распространяемый первый x86 и 64 оба. Затем установите один appriopriate на версию и архитектуру Windows (86 или 64).
Установка MSSQL Management Studio 2014 на недавно установленную Windows 7 разрешила эту проблему у нашего клиента после двухдневной нелепой битвы.
Предложите также проверить, сколько памяти используется в настоящее время. Оказывается, что невозможность найти эти библиотеки была первым симптомом, проявленным при попытке запуска программы (запуска или отладки) в Visual Studio. После более чем получаса с большим количеством царапин на голове, поиска в Интернете, запуска procmon и диспетчера задач, и, в зависимости от этого, совершенно другая программа, которая была запущена с самого начала, сообщила, что "память низкая, попробуйте остановить некоторые программы" или некоторые например. Убийство Firefox, Thunderbird, procmon, зависит, все работает снова.