解决 side-by-side 问题的一种方法

解决 side-by-side 问题的一种方法

VS7.0开始引入了manifest的机制,程序必须经过部署才能运行。Release版本的程序可以通过安装VC++的Redistributable包完成部署。Debug版本的程序微软没有提供对应的Redistributable包。如果在没有安装VS的机器上运行就会遇到side-by-side错误。

The application has failed to start because its side-by-side configuration is incorrect.Please see the application event log or use the command-line sxstrace.exe for more detail。

对此MSDN网站提供了一种解决方案。但是需要有已经安装好的VS,对于我这样只使用命令行做编译没有完整IDE的并不适用。下面用一种workaround方法也能快速的完成Debug环境的部署。

以下以VS2005为例,首先安装需要的merge module(.msm文件)。msm不支持直接安装,可以通过msm2msi工具把它转换成msi来安装。msm2msi下载地址

因为我只用到了CRT库,只需要转换并安装两个msm,

  • Microsoft_VC80_DebugCRT_x86.msm
  • policy_8_0_Microsoft_VC80_DebugCRT_x86.msm

注意其中的policy也需要安装。安装完毕后可以在winsxs目录下找到如下manifest文件

  • x86_microsoft.vc80.debugcrt_1fc8b3b9a1e18e3b_8.0.50727.42_none_ef74ff32550b5bf0.manifest
  • x86_policy.8.0.microsoft.vc80.debugcrt_1fc8b3b9a1e18e3b_8.0.50727.42_none_3825408a574a21cb.manifest

然后需要把相关的dll复制到winsxs的对应目录下,目录名称和manifest名称相同,如本例中应为

x86_microsoft.vc80.debugcrt_1fc8b3b9a1e18e3b_8.0.50727.42_none_ef74ff32550b5bf0

附上用到的工具
msm转msi工具msm2msi
http://download.csdn.net/detail/shermanwan/9648703
vs2005 debugcrt 发布包
http://download.csdn.net/detail/shermanwan/9648716

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值