Во-первых, обратите внимание, что теперь есть явная поддержка просто отключения контейнера 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"]
Это походит или на проблему с Вашей установкой VS2008 или на что-то не так с Вашим путем поиска DLL. MSVCR90.DLL установлен при установке VS2008 Вам не придется установить дополнительные распространяемые пакеты.
Сначала я проверил бы Вашу переменную окружения PATH и удостоверился бы, что нет никакого gobbledydook в ней, который повредит некоторые записи, и если бы Вы не находите проблему там, затем я удалил бы и переустановил бы Visual Studio.
Вы могли также попытаться искать MSVCR90.DLL (и другой DLLs как он) и переместить их в свою папку Windows/System32.
Если Вы просто хотите начать теперь, другая вещь, которую Вы могли бы сделать, изменить Ваш проект статически связаться с библиотеками времени выполнения и затем этим, привычка даже пытается загрузить тот DLL. Перейдите к своим настройкам Project, Свойствам Конфигурации-> C/C++> Генерация кода и измените Библиотеку времени выполнения от Многопоточного DLL до просто Многопоточного (или любая из опций, которая не заканчивается DLL).
при удалении файла манифеста, связанного с Вами .exe Вы получите ту же ошибку.
MSVCR90.dll не установлен в system32, но в бок о бок папка, следовательно декларация требуется.
Если Вы даете законченный exe кому-то еще, кого они должны будут установить последнее визуальное c время выполнения для выполнения его. Это будет только работать на сборку конечных версий AFAIK. Visual Studio должна установить необходимое время выполнения и выпуск и отладка в Ваш путь. Проект, вероятно, имеет дополнительную зависимость, случайно установленную для неверной версии времени выполнения.
Посмотрите, помогает ли эта страница.
Перейдите в настройки проекта, «Свойства конфигурации» -> C / C ++ -> «Генерация кода» и измените «Runtime Library» с «Многопоточная DLL» на «Многопоточная», а затем попробуйте скомпилировать, но это не произойдет. , Затем измените его на Multi-Threaded Debug и попробуйте скомпилировать, но это не произойдет снова, а затем вы вернете его обратно на Multi-Threaded DLL, а затем он должен скомпилироваться и запустить.
Вот некоторые вещи проверить на Вашу конфигурацию проекта - под вкладкой "Общие":
Если Вы получаете определенные ошибки компоновщика, которые говорят, что что-то уже определяется: Это означает, что у Вас есть некоторые части Вашего приложения (отдельный, освобождает быть связанным с Вашим exe), которые создаются с другим динамическим подключением:
Вы можете:
Удостоверьтесь, что эти библиотеки были скомпилированы с той же версией Visual Studio как Ваше приложение.
Измените те проекты использовать статическое время выполнения: C/C++-> Генерация кода-> Библиотека времени выполнения: / MT или MTd (то же как № 4 выше)
Если у Вас все еще есть некоторая определенная ошибочная попытка говорить компоновщику игнорировать определенные библиотеки: Перейдите к Компоновщику->, Игнорируют Определенную Библиотеку и вставляют библиотеку, которую Вы хотите проигнорировать. Это наиболее характерно для 'libcmt.lib' или 'libcmtd.lib'. Важно также знать, что lib, заканчивающийся 'd', обычно является отладочной версией. Если Вы создаете сборку конечных версий, и Вы становитесь 'уже определенными в libcmtd.lib', который означает, что где-нибудь Вы связываете lib выпуска с lib отладки.
Я только что был укушен этим и эта страница заставила меня снова работать.
Ключ заключается в игнорирование библиотек MSVCRT и MSVCR90 для конфигурации отладки. Установите параметр компоновщика -> Вход -> Игнорировать конкретную библиотеку следующим образом: