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, надеясь, что отсутствующая библиотека debug .dll будет установлена ​​в C: \ Windows \ winsxs. Однако я видел

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

на https://msdn.microsoft.com/en-us/library/8kche8ah%28v=vs.110%29.aspx.

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


person user3731622    schedule 09.04.2015    source источник


Ответы (1)


Ваш файл манифеста для отладочной сборки неверен. Вот как мой выглядит для VS2013. Обратите внимание на параметр «Требовать 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>
person pcunite    schedule 21.07.2015