Проблема с программой Visual C++ - не удается найти отладочный CRT
У меня есть друг, который берет у меня проект Visual C++ и испытывает проблемы с его запуском. Это графическое приложение, и оно использует библиотеку Qt GUI. Причина, по которой я упоминаю об этом, заключается в ошибке ниже.
Он может построить и связать программу с помощью Visual Studio 2010, но когда он запускает ее, в окне просмотра событий появляется следующее сообщение:
Не удалось создать контекст активации
для
"D:TestQt4.2.2binQtGuid4.файл DLL".
зависимая сборка
Майкрософт.VC80.DebugCRT,параметр processorarchitecture="х86",значения PublicKeyToken="1fc8b3b9a1e18e3b",
type= "win32", version= " 8.0.50608.0"
его не могли найти. Пожалуйста, используйте
sxstrace.exe для детальной диагностики.
Когда мы делаем, как просит сообщение, и запускаем sxstrace.отлично, вот что мы видим:
Начать Генерацию Контекста Активации.
Входной Параметр: Flags = 0
ProcessorArchitecture = Wow32
CultureFallBacks = en-US; ru
ManifestPath =
D:TestQt4.2.2binQtGuid4.файл DLL
AssemblyDirectory =
D:TestQt4.2.2bin
--------------- информация: анализ файла манифеста D:TestQt4.2.2binQtGuid4.файл DLL.
Информация: идентичность определения манифеста является
(нулевой). Информация: справка:
Майкрософт.VC80.DebugCRT,параметр processorarchitecture="x86 в"тип="Win32",созданные версия="8.0.50608.0"
Информация: разрешение ссылки
Майкрософт.VC80.DebugCRT,параметр processorarchitecture="x86 в"вид"Win32",версия="8.0.50608.0".
Информация: разрешение ссылки для
Для эмуляторе WoW64. ИНФОРМАЦИЯ:
Разрешение ссылки по культуре
Нейтральный. Информация: применение привязки
Политика.
Информация: политика издателя не найдена.
Информация: перенаправление политики привязки не найдено. Информация: Начало сборки
зондировать.
Информация: не удалось найти сборку в WinSxS.
Информация: попытка проверить манифест на C:WindowsassemblyGAC_32Microsoft.VC80.DebugCRT8.0.50608.0__1fc8b3b9a1e18e3bMicrosoft.VC80.DebugCRT.DLL.
Информация: не нашел манифеста для нейтральной культуры. Информация: конечная сборка
зондировать. Информация: разрешение ссылки
на processorarchitecture x86 на. ИНФОРМАЦИЯ:
Разрешение ссылки на культуру
Нейтральный. Информация: применение привязки
Политика.
Информация: политика издателя не найдена.
Информация: перенаправление политики привязки не найдено. Информация: Начало сборки
зондировать.
Информация: не удалось найти сборку в WinSxS.
Информация: попытка проверить манифест на C:WindowsassemblyGAC_32Microsoft.VC80.DebugCRT8.0.50608.0__1fc8b3b9a1e18e3bMicrosoft.VC80.DebugCRT.DLL.
Информация: попытка проверить манифест на D:TestQt4.2.2binMicrosoft.VC80.DebugCRT.DLL.
Информация: попытка проверить манифест на D:TestQt4.2.2binMicrosoft.VC80.DebugCRT.MANIFEST.
Информация: попытка проверить манифест на D:TestQt4.2.2binMicrosoft.VC80.DebugCRTMicrosoft.VC80.DebugCRT.DLL.
Информация: попытка проверить манифест на D:TestQt4.2.2binMicrosoft.VC80.DebugCRTMicrosoft.VC80.DebugCRT.MANIFEST.
Информация: не нашел манифеста для нейтральной культуры. Информация: конечная сборка
зондировать. Ошибка: не удается разрешить
ссылка
Майкрософт.VC80.DebugCRT,параметр processorarchitecture="x86 в", значения PublicKeyToken="1fc8b3b9a1e18e3b",тип="с Win32",версия="8.0.50608.0".
Извините за длинное сообщение, но я подумал, что это может пробудить некоторые воспоминания. Является ли это случаем того, что у него не установлены библиотеки времени выполнения Visual C++ 2005 (Я полагаю, что именно оттуда происходит VC80)? Если да, то может ли он скачать пакет перераспределения VC++ и установить его, и тогда все будет хорошо? Или это совсем другое дело проблема?
2 ответов:
Если у вашего друга не установлен VS2005, у него не будет отладочных библиотек времени выполнения для него. Они не являются частью распространяемых сред выполнения и IIRC, Microsoft запрещает вам распространять их самостоятельно, поэтому вам нужно установить VS2005, чтобы получить их.
Я бы предположил, что он перестроит затронутую библиотеку, если это возможно; я смутно припоминаю, что в интернете есть пара статей о том, как перестроить GPL QT с помощью Visual Studio, в которую я верю. официально не поддерживается.
Смешивание времени выполнения C++ требует большой осторожности,и вы можете попасть в довольно неприятную ловушку, если вы не получите его точно. Если перестроение всех библиотек с помощью VS2010 не является вариантом, ваш друг должен будет получить VS2005. Возможно, стоит проверить, по-прежнему ли MS предлагает для загрузки Экспресс-версию VS2005.
Вы могли бы также сделать ниже: LOL
Если вы запускаете приложение в режиме Windows 7 X64, которое строится в целевой версии X64, вам необходимо установить следующий распространяемый пакет X64 SP1
Http://www.microsoft.com/download/en/details.aspx?id=2092
Примечание: файл манифеста должен измениться на processorArchitecture = X64 и type= "win64"
Если вы создаете приложение с X86 (32-битный режим), которое работает поверх слоя WOW64, вы должны установите распространяемый пакет для x86 с пакетом обновления 1
Http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=5582
Comments