Ошибка: приложение не удалось запустить, потому что его параллельная конфигурация неверна.

Я создал приложение MFC с помощью Visual Studio 2008, которое отлично работает в Windows XP. Но когда я пытаюсь запустить тот же EXE-файл в Windows Vista, я получаю:

Ошибка: приложение не удалось запустить, потому что его параллельная конфигурация неверна.

Когда я проверяю программу просмотра событий, я вижу следующее:

Log Name:      Application
Source:        SideBySide
Date:          12/10/2010 10:06:08 AM
Event ID:      33
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      WIN-8A4INI0BH2R
Description:
Activation context generation failed for "C:\MyApp.exe". Dependent Assembly Microsoft.VC90.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8" could not be found. Please use sxstrace.exe for detailed diagnosis.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="SideBySide" />
    <EventID Qualifiers="49409">33</EventID>
    <Level>2</Level>
    <Task>0</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2010-12-10T04:36:08.000Z" />
    <EventRecordID>181</EventRecordID>
    <Channel>Application</Channel>
    <Computer>WIN-8A4INI0BH2R</Computer>
    <Security />
  </System>
  <EventData>
    <Data>Microsoft.VC90.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8"</Data>
    <Data>
    </Data>
    <Data>

    </Data>
    <Data>C:\MyApp.exe</Data>
    <Data>
    </Data>

    <Data>
    </Data>
  </EventData>
</Event>

person Simsons    schedule 10.12.2010    source источник
comment
Вы установили правильный VC90 CRT на машине Vista?   -  person James McNellis    schedule 10.12.2010
comment
@James McNellis, Нет. Означает ли это, что пользователю также необходимо установить VC90 CRT на свой компьютер Vista для запуска моего приложения?   -  person Simsons    schedule 10.12.2010
comment
@ Джеймс МакНеллис, это сработало, должен быть ответ   -  person Simsons    schedule 10.12.2010
comment
@Subhen: Это не значит, что вам нужно устанавливать VC90 CRT на всех компьютерах с Vista. У вас есть 2 варианта: статически связать среду выполнения, использовать частные сборки (просто скопируйте манифесты и файлы crt в каталог вашего приложения).   -  person DReJ    schedule 10.12.2010
comment
Связано: Предотвратить Не удалось запустить приложение из-за неправильной параллельной конфигурации. .. ошибка при запуске Access (поддержка Microsoft). Он должен работать для других приложений, кроме Access.   -  person Peter Mortensen    schedule 16.01.2015


Ответы (2)


У вас нет DLL среды выполнения CRT на целевой машине. Чтобы избежать этого, вы можете установить распространяемые компоненты VC9 или статически связать свою программу со средой выполнения (подробнее). Этот вопрос также может оказаться полезным.

person Kirill V. Lyadvinsky    schedule 10.12.2010
comment
Вы также можете использовать частные сборки, например в каталоге вашего приложения может быть каталог с именем Microsoft.VC90.CRT, содержащий библиотеки времени выполнения. Приложение автоматически найдет их. Это очень полезно, если приложение необходимо распространять без доступных разрешений на установку, и позволяет сэкономить на установке всего CRT. См. stackoverflow.com/questions/787216. - person chrism1; 10.12.2010
comment
Чтобы решить проблемы с частными сборками, прочтите эту отличную статью - buffered.io/posts/resolving-side-by-side-configuration-issues. - person TheJosh; 12.09.2013

Я понимаю, что это старый поток, но я получил ту же ошибку, и ни один из потоков SO не ссылается на причину возникшей у меня проблемы. Я использовал программу sxstrace, и она указала мне на файл конфигурации, где была проблема с синтаксисом XML!

person Valid    schedule 15.11.2018