MSVCR90.DLL не был найден

Во-первых, обратите внимание, что теперь есть явная поддержка просто отключения контейнера dba / phpmyadmin, omit_containers: dba (также может быть сделано в глобальной конфигурации ddev, ~ / .ddev / global_config.yaml).

И, конечно, я бы порекомендовал просто запустить обычный контейнер БД и не использовать его.

Но вот docker-compose.database.yaml, который делает то, что вы просите:

version: '3.6'

services:
  db:
    image: "busybox:latest"
    command: sh -c "while true; do sleep 1000; done"
    healthcheck:
      test: ["CMD", "true"]

12
задан Kent Fredric 16 November 2008 в 12:11
поделиться

6 ответов

Это походит или на проблему с Вашей установкой VS2008 или на что-то не так с Вашим путем поиска DLL. MSVCR90.DLL установлен при установке VS2008 Вам не придется установить дополнительные распространяемые пакеты.

Сначала я проверил бы Вашу переменную окружения PATH и удостоверился бы, что нет никакого gobbledydook в ней, который повредит некоторые записи, и если бы Вы не находите проблему там, затем я удалил бы и переустановил бы Visual Studio.

Вы могли также попытаться искать MSVCR90.DLL (и другой DLLs как он) и переместить их в свою папку Windows/System32.

Если Вы просто хотите начать теперь, другая вещь, которую Вы могли бы сделать, изменить Ваш проект статически связаться с библиотеками времени выполнения и затем этим, привычка даже пытается загрузить тот DLL. Перейдите к своим настройкам Project, Свойствам Конфигурации-> C/C++> Генерация кода и измените Библиотеку времени выполнения от Многопоточного DLL до просто Многопоточного (или любая из опций, которая не заканчивается DLL).

11
ответ дан 2 December 2019 в 06:10
поделиться

при удалении файла манифеста, связанного с Вами .exe Вы получите ту же ошибку.

MSVCR90.dll не установлен в system32, но в бок о бок папка, следовательно декларация требуется.

4
ответ дан 2 December 2019 в 06:10
поделиться

Если Вы даете законченный exe кому-то еще, кого они должны будут установить последнее визуальное c время выполнения для выполнения его. Это будет только работать на сборку конечных версий AFAIK. Visual Studio должна установить необходимое время выполнения и выпуск и отладка в Ваш путь. Проект, вероятно, имеет дополнительную зависимость, случайно установленную для неверной версии времени выполнения.

Посмотрите, помогает ли эта страница.

0
ответ дан 2 December 2019 в 06:10
поделиться

Перейдите в настройки проекта, «Свойства конфигурации» -> C / C ++ -> «Генерация кода» и измените «Runtime Library» с «Многопоточная DLL» на «Многопоточная», а затем попробуйте скомпилировать, но это не произойдет. , Затем измените его на Multi-Threaded Debug и попробуйте скомпилировать, но это не произойдет снова, а затем вы вернете его обратно на Multi-Threaded DLL, а затем он должен скомпилироваться и запустить.

0
ответ дан 2 December 2019 в 06:10
поделиться

Вот некоторые вещи проверить на Вашу конфигурацию проекта - под вкладкой "Общие":

  • .1 Тип конфигурации - exe в Вашем случае.
  • .2 Использование MFC: если это - приложение MFC, это могло бы быть более портативно, если Вы делаете: Используйте MFC в статической библиотеке.
  • .3 Использование ATL - не используя atl (или не уверенное) говорит не использование ATL.
  • .4 Под C/C++-> Библиотека времени выполнения: Скажите Многопоточную Отладку (для отладочной версии) или Многопоточный (для версии выпуска).

Если Вы получаете определенные ошибки компоновщика, которые говорят, что что-то уже определяется: Это означает, что у Вас есть некоторые части Вашего приложения (отдельный, освобождает быть связанным с Вашим exe), которые создаются с другим динамическим подключением:

Вы можете:

  • Удостоверьтесь, что эти библиотеки были скомпилированы с той же версией Visual Studio как Ваше приложение.

  • Измените те проекты использовать статическое время выполнения: C/C++-> Генерация кода-> Библиотека времени выполнения: / MT или MTd (то же как № 4 выше)

  • Если у Вас все еще есть некоторая определенная ошибочная попытка говорить компоновщику игнорировать определенные библиотеки: Перейдите к Компоновщику->, Игнорируют Определенную Библиотеку и вставляют библиотеку, которую Вы хотите проигнорировать. Это наиболее характерно для 'libcmt.lib' или 'libcmtd.lib'. Важно также знать, что lib, заканчивающийся 'd', обычно является отладочной версией. Если Вы создаете сборку конечных версий, и Вы становитесь 'уже определенными в libcmtd.lib', который означает, что где-нибудь Вы связываете lib выпуска с lib отладки.

6
ответ дан 2 December 2019 в 06:10
поделиться

Я только что был укушен этим и эта страница заставила меня снова работать.

Ключ заключается в игнорирование библиотек MSVCRT и MSVCR90 для конфигурации отладки. Установите параметр компоновщика -> Вход -> Игнорировать конкретную библиотеку следующим образом:

  • MSVCRT
  • MSVCR90
3
ответ дан 2 December 2019 в 06:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: