Visual Studio 2012 Debug .exe требует Microsoft.VC90.DebugCRT

Когда я собираю конфигурацию отладки,.exe не запускается.

Сообщает

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

Я использовал инструмент sxstrace.exe. Он сообщает о следующей ошибке:

ОШИБКА: не удается разрешить ссылку Microsoft.VC90.DebugCRT,processorArchitecture="amd64",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8".

Я прочитал много постов, связанных с этими параллельными ошибками. Я попытался установить распространяемые пакеты Visual Studio 2008, надеясь, что отсутствующий файл отладки.dll будет установлен в C:\Windows\winsxs. Тем не менее, я видел

Отладочные версии приложений и различные библиотеки Visual C++ не подлежат распространению.

по адресу https://msdn.microsoft.com/en-us/library/8kche8ah%28v=vs.110%29.aspx.

Как я могу решить эту проблему?

1 ответ

Ваш файл манифеста для отладочной сборки неверен. Вот как выглядит моя шахта для VS2013. Обратите внимание на опцию "Require DEBUG CRT". Теперь, чтобы загрузить это, в моем файле RC у меня есть:

#ifdef _DEBUG
1 24 "profiler.exe.debug.manifest"
#else
1 24 "profiler.exe.manifest"
#endif

Вот MyProgram.exe.debug.manifest

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">

  <!-- Declare your Identity -->
  <assemblyIdentity type="win32" name="YOUR_COMPANY_NAME" version="1.0.0.0" processorArchitecture="*" />

  <!-- Require Common Controls version 6 -->
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/>
    </dependentAssembly>
  </dependency>

  <!-- Require DEBUG CRT -->
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC90.DebugCRT" version="9.0.21022.8" processorArchitecture="*" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    </dependentAssembly>
  </dependency>

  <!-- Declare support for Vista and Windows 7 -->
  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
    <application>
      <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
      <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
    </application>
  </compatibility>

  <!-- Declare Privileges -->
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
      </requestedPrivileges>
    </security>
  </trustInfo>

  <!-- Declare High DPI support -->
  <asmv3:application>
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
      <dpiAware>true</dpiAware>
    </asmv3:windowsSettings>
  </asmv3:application>

</assembly>
Другие вопросы по тегам