EXE перестает работать, если содержащая папка переименована. MSVCP90.dll - PullRequest
0 голосов
/ 18 мая 2010

Это всплывающее окно появляется, как только приложение запускается:

Программа не запускается из-за отсутствия MSVCP90.dll на вашем компьютере.

Прежде чем кто-то скажет "установить среды выполнения VC ++", подождите! Если я переименую папку, содержащую мой .EXE, то приложение запустится. Если я переименую его обратно, он сломается. Приложение работало в течение нескольких недель без каких-либо изменений в моей системе / установке VS (2008 SP1), мы неожиданно обнаружили эту ошибку несколько дней назад.

Потерял, почему имя каталога вызывает проблемы ... опять же, это не изменилось за месяцы, и все наши пути ресурсов в любом случае являются относительными, например, "../someOtherDir/...."

Это не просто делает это на моем ПК, у нас есть каталог / bin (тот, который содержит EXE) в SVN, и внезапно все начинают видеть ту же проблему, даже если сами двоичные файлы выглядят просто отлично. Возможно ли добавить в SVN какие-то дополнительные данные, и в этом причина? Поскольку это не просто один компьютер, в SVN или в самом EXE-файле должно быть что-то ...

Обратите внимание, что это всплывающее окно появляется еще до запуска нашего кода.

Ответы [ 2 ]

2 голосов
/ 18 мая 2010

Кажется, что существует файл .exe.manifest, указывающий на другую версию MSVCP90.dll. Удаление этого файла должно помочь (теоретически манифест является решением против ада DLL, но на самом деле это просто новый PITA).

0 голосов
/ 18 мая 2010

Попробуйте вернуться к некоторым более ранним версиям SVN и посмотреть, сможете ли вы определить изменение, из-за которого оно перестало работать. Бинарный поиск будет наиболее эффективным для этого. Настройки PATH также могут быть проблемой?

...