Ошибка параллельной конфигурации (Microsoft.VC80.CRT v8.0.50608.0) - PullRequest
5 голосов
/ 14 сентября 2009

У меня есть сборка со следующим встроенным манифестом:

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50608.0" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    </dependentAssembly>
  </dependency>
</assembly>

На одной из моих машин эта сборка не работает (сборка не загружается). Открытие этого в обходчике зависимостей выдает мне следующее сообщение об ошибке:

Error: The Side-by-Side configuration information for "SomeAssembly.dll" contains errors. This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem (14001).

Идентичная сборка отлично работает на другой машине, и я не получаю ошибки с помощью обходчика зависимостей.

Насколько я могу решить, проблема в том, что на первой машине отсутствует какая-либо зависимость (например, распространяемая MSVCR), однако я уже проверил, и Microsoft Visual C ++ 2005 Redistributable отлично установлен на обоих машины.

Как мне выяснить, что такое отсутствующая зависимость?

Единственное, что я заметил, это то, что в каталоге WinSxS на рабочем компьютере есть дополнительная запись:

x86_Microsoft.VC80.ATL_1fc8b3b9a1e18e3b_8.0.50727.4053_x-ww_473666fd

Ответы [ 3 ]

2 голосов
/ 17 февраля 2011

После борьбы с той же проблемой, я заметил, что обновления, применяемые для установки Visual Studio разработки, могут касаться некоторых обновлений целевого компьютера:

Visual Studio Updates

Например, выделенное обновление выше относится к этому конкретному вопросу.

2 голосов
/ 29 июня 2011

Не желая пересылать сообщения бок о бок, я бы посоветовал вам не включать «Файл манифеста» в вашу сборку. Тем более, что вы не можете быть уверены, что ПК, на который вы собираетесь установить программное обеспечение, обновлен до версии, включенной в ваш манифест.

Вы можете отключить его, установив для свойства проекта "Linker \ Manifest File \ Generate Manifest" значение "Нет".

Надеюсь, это поможет. Удачи

2 голосов
/ 14 сентября 2009

Рассортировано!

Кто-то любезно указал мне, что «SomeAssembly.dll», упомянутый в Dependency Walker, на самом деле отличается от той, которую я открыл в Dependency Walker! (Упс!)

Глядя на манифест для этой сборки, я вижу, что проблема связана с тем, что Microsoft.VC80.CRT v8.0.50727.4053 нацелена, но отсутствует на этом компьютере. (Устанавливается с помощью обновления безопасности).

...