2009-07-21 3 views
9

в моем проекте, если компилировать проект в выпуске, он спрашивает меня MSVCP90.dll.MSVCP90.dll не найден?

если это отладки, это не ...

вы когда-нибудь встречались с такой ситуацией?

, и вы знаете, почему это .dll желательно? или какая конфигурация делает его желательным?

спасибо за любые советы ..

+0

Вы пытаетесь динамически ссылаться на внешний файл dll – Bashar

ответ

14

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

Затем я искал конфигурацию и увидел, что «Генерировать манифест» - это «Нет» в выпуске, когда «Отладка» была «Да».

поэтому я изменил и попробовал еще раз, после чего он сработал.

я не знал, что эта конфигурация может повлиять на подобное, (и я не помню, когда я изменил его)

в любом случае .. спасибо за ваши другие ответы ...

+0

Вы можете проверить, как DLL-файлы MS Runtime развернуты в каталоге Windows в% WINDIR%/WinSxS. Windows использует манифест, чтобы определить, какую конкретную DLL-версию запуска загрузить. –

+1

Другая возможность, которая может вызвать ту же проблему: Manifest Tool | Вставить Manifest = No. –

+0

Спасибо, я тупо отключил манифест, и это решило его для меня! Спасибо :) –

14

Я думаю, вам необходимо установить Microsoft Visual C++ 2008 Redistributable Package который вы можете получить от here.

+0

, так как он уже загружен, это не решение :( – ufukgun

3

Вы искали свой жесткий диск для файла? Вы можете найти его в каталогах, таких как:

C: \ Program Files \ Microsoft Visual Studio 9.0 \ VC \ Redist \ x86 \ Microsoft.VC90.CRT

Если она есть, скопируйте его в папку \ окна \ system32.

Также копируйте файл msvcm90.dll и msvcr90.dll, пока вы в нём.

Если это не работает, то решение загружает и устанавливает распространяемый пакет Microsoft Visual C++ 2008. Перейдите по этой ссылке для загрузки (около 1,8 MB):

http://www.microsoft.com/downloads/thankyou.aspx?familyId=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displayLang=en

Проверьте здесь для нескольких способов sloving этого вопроса:

http://pcsupport.about.com/od/findbyerrormessage/a/msvcp90-dll-not-found-missing-error.htm

+0

нашел их здесь: C: \ Program Files \ Intel \ Intel (R) Rapid Storage Technology \ Microsoft .VC90.CRT –

1

Проверьте настройки проекта. Если вы не создаете манифест для сборки Release, DLL должна быть в каталоге System32.

Кроме того, если ваши выпуски Release и Debug собираются в один и тот же каталог, он может видеть манифест Debug, который указывает его на отладочную версию DLL. Лучше всего создать встроенный манифест для всех сборок.

0

Существует несколько файлов, которые делают Visual C++ Run-time, и вы можете иметь одну и ту же проблему с любым из них. Вы можете взглянуть на другие вопросы, касающиеся любого из следующих файлов.

  • msvcP90.dll
  • msvcP90d.dll (отлаживать версия msvcP90.длл)
  • msvcr90.dll
  • msvcR90d.dll (отладочная версия msvcr90.dll)
+0

Моя первоначальная мысль была неправильной. Это не имеет никакого отношения к маркированному списку, и все, что связано с тем, что вы пытаетесь смело просто часть слова. Это по дизайну, так как это не означает, что уценка ошибочно смел. См. Объяснение Джеффа здесь: http://meta.stackexchange.com/questions/1643/bug-bolding-with-isnt-working-properly/1669#1669 –

+0

@Bill В чем проблема с именами файлов с M в названии? –

1

Вы, вероятно, выключил манифеста вложения в проект в конфигурации выпуска.

+0

да, вы правы. это было решение, но я уже сказал это .. – ufukgun

Смежные вопросы