vc2008程序发布指南

vc2008程序发布指南

2008-05-03 17:46

vc2008开发的程序的发布方式可以有5种方式:

1. 采用静态链接到crt和MFC. 只要你拥有组成程序的所有源代码,你就可以采用这种方式,
   这种方式除了程序变大一点,好处多多: 
   1) 不必重新发布vc2008基础库vcredist_x86.exe(安装到WinSxS).
   2) 不必产生,嵌入manifest.
   3) 也不把vc2008基础库放在程序所在目录.

2. exe(嵌入manifest) + vcredist_x86.exe

   确保程序正确产生并嵌入manifest文件,然后把程序和vcredist_x86.exe一起发布.用户先安装
   vcredist_x86.exe(安装到WinSxS),然后程序就能正常运行了.

3. exe(嵌入manifest) + 用到的基础库文件放到程序目录(包括库文件本身的manifest文件)

   确保程序正确产生并嵌入manifest文件,然后把程序用到的vc2008基础库相关文件复制到程序
   所在目录,这种方式适用于用户没有安装过vcredist_x86.exe,一旦用户安装过vcredist_x86.exe,
   若WinSxS中的相关文件遭到破坏,那么即使在程序目录放上所有用到的vc2008基础库,程序也跑
   不起来;若WinSxS中的相关文件正常,那么程序目录下的相关文件就是多余的了,删掉它们程序也能
   正常运行.

4. exe(自行编写manifest) + vcredist_x86.exe

5. exe(自行编写manifest) + 用到的基础库文件放到程序目录(包括库文件本身的manifest文件)

另外,C:/Program Files/Common Files/Merge Modules 目录下有相应库的集成模块可以直接集成到安装包中去.

附录:

A. 自行编写的manifest文件命名: abc.exe 对应abc.exe.manifest

B. 与程序对应的manifest的格式:

<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level='asInvoker' uiAccess='false' />
      </requestedPrivileges>
    </security>
</trustInfo>

<dependency>                                // VC9 的CRT, 基本上所有用vc2008的程序都需要下面一段
    <dependentAssembly>
      <assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
    </dependentAssembly>
</dependency>

                                              //用到 VC9的MFC库,需要加下面一段
<dependency>
    <dependentAssembly>
      <assemblyIdentity type='win32' name='Microsoft.VC90.MFC' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
    </dependentAssembly>
</dependency>

<dependency>                                //想使用windows xp 的6.0版本的通用控件,加需要下面一段
    <dependentAssembly>
      <assemblyIdentity type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*' />
    </dependentAssembly>
</dependency>

</assembly>

C. 如何确保程序正确产生并嵌入manifest文件?
   - xxxproject > properties > Configuration Properties > Generate Manifest: 确保为Yes
     这个与Configuration Properties >Linker > Manifest File >Generate Manifest都是指同一个设置.
   - Project > Tool Build Order > Manifest Tool确保打勾.
     release版本可以看到有: xxx.exe.intermediate.manifest 生成, 它是由linker生成的,由manifest tool嵌入程序的.
     debug版本manifest tool把xxx.exe.intermediate.manifest嵌入程序后还会输出一个xxx.exe.embed.manifest,供检查内容是否一样

时间: 2024-11-15 04:10:28

vc2008程序发布指南的相关文章

基于Asterisk的VoIP开发指南——(2)Asterisk AGI程序编写指南

原文:基于Asterisk的VoIP开发指南--(2)Asterisk AGI程序编写指南 5. Asterisk AGI程序编写指南    5.1概述 很多时候,我们需要在拨号方案中做某些业务逻辑的判断或者外部数据库的查询,根据具体地需要,有几种做法: 1.使用Asterisk的通道变量.Goto函数.Gotoif函数等实现某些简单跳转,通过几个这样的函数的组合,实现简单的业务. 2.对终端接入用户的呼叫请求中的某些属性,进行简单的数据库增删改查,在Asterisk官方发布的asterisk-

qt程序发布时在.pro文件中没有添加使用的库在发布时却要加上?

问题描述 qt程序发布时在.pro文件中没有添加使用的库在发布时却要加上? 解决方案 http://blog.sina.com.cn/s/blog_79ab4be10101p1dk.html

101_《Delphi5程序员指南》

<Delphi5程序员指南> Delphi 教程 系列书籍 (101) <Delphi5程序员指南> 网友(邦)整理 EMail: shuaihj@163.com 下载地址: Part1 Part2 Part3 Part4 Part5 Part6 Part7 作者: 蒋方帅 出版社:人民邮电出版社 ISBN:9787115086761 上架时间:2007-12-14 出版日期:2000 年8月 页码:1046 版次:1版1次 内容简介 本书介绍了Delphi5的各方面内容.全书共分

关于注册安装问题我 我们写了一个管理类的程序 发布了一个安装程序.

问题描述 关于注册安装问题我 我们写了一个管理类的程序 发布了一个安装程序. 关于注册安装问题我 我们写了一个管理类的程序 发布了一个安装程序 刚开始是免费试用7天 但是如果你今天安装了 没到7天 你重新卸载了 再次安装 又有七天了 这个问题该怎么解决呢????. 解决方案 在程序运行的时候往文件系统或者注册表中某个角落写一个值.卸载程序不知道,再次安装,运行后你去判断下,发现有了,就不让用. 还有就是在线验证,将用户信息记录在服务器上.可以用手机短信验证. 解决方案二: 这个有一个就是你安装的

关于weblogic 管理端口及程序发布端口可否在weblogic 管理服务器上分开

问题描述 各位大侠,我有个客户,希望在weblogic管理服务器上把管理端口与程序发布端口分开,能实现吗希望各位达人帮忙解答,谢谢啊 解决方案 解决方案二:可以..域部署就是了.我现在系统就是一个服务器上一个管理server,4-5个应用server.多实例域部署解决方案三:将管理server的管理端口和应用端口分开很简单,在控制台中点击你的域->锁定并编辑->勾上启用管理端口,在下面的管理端口写自己想要的管理端口就行了

使用WiX Toolset创建.NET程序发布Bootstrapper(安装策略管理)(一)——初识WiX

原文:使用WiX Toolset创建.NET程序发布Bootstrapper(安装策略管理)(一)--初识WiX   Visual Studio 打包安装七宗罪           开发.NET的人,肯定会使用Visual Studio里面自带的MSI打包安装工具框架.如果是在一般情况下,这个打包安装框架已经完全足够满足产品发布安装的需要了.它的制成品,是一个setup.exe,一个MSI安装文件,如果你选择项目以来的其他.NET,Windows Install 框架,并且确定随产品发布,那制成

部署-vs2015关于程序发布的问题

问题描述 vs2015关于程序发布的问题 环境:win10 编译器:vs2015 事件:c#写了一个很简单的windows窗体应用程序,本来想着发布一下.点击立即发布,但是提示:签名出错:未找到SignTool.exe 截图如下: 问题:如果说要下载一个signtool.exe的话,我应该放到什么位置.如果只需要通过它在命令行里面配置,应该怎么做.求大神帮帮忙.真心不会 解决方案 signtool应该是.net sdk自带的,你安装的时候是不是没有装全. 另外自己写一个winforms程序,用不

cs程序发布时, 如何指定web service的地址

问题描述 CS程序发布,是否可以在安装界面由用户来输入webservicesite的地址呢?如何做?谢谢. 解决方案 解决方案二:url地址都是写config文件中的,你可以安装程序修改这个文件的解决方案三:可以在制作Install的时候,做一个自定义窗体,输入URL解决方案四:晕.你的用户都是程序员啊.解决方案五:这个做在安装程序里不合适吧,还是写在配置文件吧解决方案六:还让用户输入啊?如果有动态需要的话,将做为一个功能,然后那个不同WebService,提供有好提示,让用户下拉选择,比直接输

程序发布的一些相关问题

问题描述 程序发布的一些相关问题 有好多程序员在大学时候,就将自己的程序放到国外的网站,每个月都能获得点收益.他们都放到那些网站了,该怎么做啊,求教 解决方案 还有这么高大尚的,顶一下. 解决方案二: 关键得有程序,好的程序,比如Android和ios发布的应用的商城 解决方案三: 有好的代码 还怕没人要? 解决方案四: 你说的这种程序主要是指手机App吧.