【发布时间】:2011-05-23 07:05:55
【问题描述】:
我使用 Visual Studio 2008 创建了一个 MFC 应用程序,该应用程序在 Windows XP 上运行良好。但是当我尝试在Windows Vista 中执行相同的 EXE 文件时,我得到了:
错误:应用程序无法启动,因为它的并排配置不正确
当我检查事件查看器时,下面是它所说的内容:
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>
【问题讨论】:
-
你在Vista机器上安装了正确的VC90 CRT吗?
-
@James McNellis,不。这是否意味着用户还必须在他们的 Vista 机器上安装 VC90 CRT 才能运行我的应用程序?
-
@Subhen,答案是肯定的。见stackoverflow.com/questions/203195/…
-
@James McNellis,它有效,应该回答
-
@Subhen:这并不意味着您必须在所有 Vista 机器上安装 VC90 CRT。您有 2 个选项:静态链接运行时,使用私有程序集(只需将清单和 crt 文件复制到您的应用程序目录)。
标签: c++ windows mfc windows-vista side-by-side