Распространяемый компонент Visual Studio и ошибка параллельной сборки / зависимой сборки

(Я использую Windows7 и Visual Studio 2010.)

Я использую ClamAV в проекте .NET Azure и сталкиваюсь с параллельными ошибками всякий раз, когда запускаю clamd.exe через свой код или самостоятельно.

В Visual Studio 2010 я получаю сообщение об ошибке:

Win32Exception не было обработано. Не удалось запустить приложение из-за неправильной параллельной конфигурации. Пожалуйста, просмотрите журнал событий приложения или используйте инструмент командной строки sxstrace.exe для получения более подробной информации.

И в средстве просмотра событий я получаю:

Ошибка создания контекста активации для «C: \ Users \ pconerly \ code \ AntiVirus_source \ WorkerRole \ clamav \ clamd.exe». Зависимая сборка Microsoft.VC80.CRT, processorArchitecture = "x86", publicKeyToken = "1fc8b3b9a1e18e3b", type = "win32", version = "8.0.50727.6195" не может быть найдена. Пожалуйста, используйте sxstrace.exe для подробной диагностики.

Когда я искал "8.0.50727.6195", он привел меня к редисту 2005 года, поэтому я загрузил его http://www.microsoft.com/download/en/details.aspx?id=3387

После перезапуска я все еще получаю сообщение об ошибке бок о бок. Кроме того, я думаю, что установщик redist не завершает свою установку - как будто он видит Visual Studio 2010 и говорит: «О, это достаточно хорошо, мне не нужно устанавливать». Я не пробовал удалять 2010 и использовать 2005, потому что остальная часть моей команды разработчиков использует VS 2010.

В чем дело? Как это исправить? Я готова вырвать волосы.


person Civilian    schedule 25.08.2011    source источник


Ответы (3)


Упомянутая вами версия на самом деле находится здесь

Microsoft Visual Studio 2005 Service Pack 1 MFC Security Update

person Timores    schedule 21.10.2011
comment
Этот содержит CRT отладки и выпуска, но, как я понял из вопроса, требуется только версия выпуска - person sluge; 01.06.2020

Опубликованная ссылка Timores является обновлением для Visual Studio. Фактический распространяемый пакет таков:

http://www.microsoft.com/en-us/download/details.aspx?id=26347

person George    schedule 03.02.2013

Тиморес прав: редист должен быть этим, который связан с этой записью в базе знаний. Как видите, msvcr80.dll был обновлен до версии 8.0.50727.6195. Это «обновление безопасности» «SP1» среды выполнения C ++ 2005 .. Вероятно, вашему exe требуется (через внутренний манифест) эта конкретная версия.

Если он не найден в системе (ищется много мест) или в текущей папке (за исключением подходящего манифеста), он не будет загружать exe, поскольку он не может «активировать контекст», то есть загрузить конкретную DLL, необходимую в манифесте.

У меня были аналогичные проблемы, когда моя система обновлялась (обновления Windows), и недавно скомпилированные EXE-файлы не работали со старой версией среды выполнения, размещенной в той же папке. Мне пришлось обновить msvcr80.dll и его манифест (который я нашел глубоко в \ windows \ winsxs), чтобы все заработало.

В любом случае активация контекста - дело непростое :)

HTH

person Luke    schedule 01.08.2012
comment
Я попробовал оба пути исправить одну и ту же проблему - и правильная ссылка - [ссылка] microsoft.com/en-us/download/details.aspx?id=26347, как указано выше. - person Nigel; 02.05.2013
comment
ммм ... так что, возможно, есть разные пакеты обновлений, когда у вас установлена ​​полная VisualStudio (что является моим случаем) ... спасибо, что сообщили мне! - person Luke; 04.05.2013