同学让帮忙打包个VC的程序,程序比较简单,是带access数据库的统计查询软件,之前用Visual Studio 6.0自带的Package & Deployment Wizard 工具打包过VB的程序,那个工具不能打包VC的程序好像,后来在网上找打包工具,据说 InstallShield 这个工具可以,下载了个教程准备研究研究,结果一个师弟看到了,他说他用Visual Studio 2005自带的打包工具直接就可以,很简单,想想有人指导,就干脆用后者吧,打包成功了,过程记录一下,以后要用就方便些。

Visual Studio 2005 打包过程:

第一步:首先在VS2005中打开一个想要打包的项目,接着在“文件”菜单上指向“添加”,然后单击“新建项目”。在“添加新项目”对话框中,单击“安装和部署项目”,然后选择“模板”窗格中的“安装项目”。在“名称”框中,键入“SetupTest”。(当然这里的名称框中可以随便输入,以下不做一一叙述。)“确定”即可。

这样“解决方案资源管理器”中就可以看到新建的项目

第二步:在“解决方案资源管理器”中选择“SetupTest”项目。在“属性”窗口中,更改Author、Manufacturer,ProductName等参数,(“ProductName”属性指定在文件夹名称和“添加/删除程序”对话框中为该应用程序显示的名称。)

第三步:添加需要打包的文件夹或者文件,在“文件系统编辑器”中,选择“应用程序文件夹”节点,右键--添加--文件夹/文件,文件添加完毕,添加项目输出,点击“应用程序文件夹”右键,在“操作”菜单上指向“添加”,然后单击“项目输出”。在“添加项目输出组”对话框中,从“项目”下拉列表中选择“SetupTest”。从列表中选择“主输出”组。在“配置”框中,选择“(活动)”。单击“确定”关闭对话框
第四步:为应用程序创建快捷方式。在“文件系统编辑器”中,选中“来自 SetupTest的主输出”节点。并右键点击,创建快捷方式。并为此快捷方式重命名为你所希望出现在用户桌面上的名称。同时把些快捷方式拖拽至左部的“用户桌面”文件夹中。同理为“用户的程序菜单”添加快捷方式(下图是另外一个打包文件的截图),点击某个快捷方式,在他的属性栏可以设置快捷方式的图标等属性。
第五步:添加卸载功能,在添加你的应用程序项目的时候,多添加一个msiexec.exe进去,这个文件在c:\windows\system32文件夹下,将其复制到程序集的可执行文件路径下(避免Windows保护),添加进去以后,为了让他更像个卸载程序,把他的名字改成"Uninstall.exe", 当然这个关系不大,改不改都行的. 然后给他创建一个快捷方式(再添加进来的exe文件上点击右键--创建快捷方式), 放到桌面或者"开始-程序"中, 我选择放在了开始菜单中,然后下面我们要的做的就是查找这个部署项目的ProductCode了,在“解决方案资源管理器”中选择“SetupTest”项目,鼠标左键单击项目名称,记住是左键单击,然后点击属性标签,注意:不是右击的属性,这个区别很大,这时你就可以看到ProductCode了, 复制ProductCode,然后打开你创建的那个快捷方式的属性对话框, 在Aguements属性中输入"/x {ProductCode}", 这样就添加了卸载功能。
 

第六步:设置程序文件安装的默认路径地址,选择“应用程序文件夹”一项,点选右键中的“属性”选项,在属性窗格中,将“DefaultLocation”属性值修改为我们希望用户默认的安装位置

第七步:设置系统必备选项,工程名,右键--属性--右下角有个“系统必备”--进入系统必备,一般.NET Framework 2.0默认选择,我自己还选择了Visual C++运行库(x86),然后下边“指定系统必备组件的安装位置”默认是第一个“从组件供应商的网站上下载系统必备组件”,如果电脑不能上网就无法下载所需组件,所以我下载了.NET Framework 2.0安装软件,打包在了安装程序中,然后选择第二项“从与我的应用程序相同的位置下载系统必备组件”
第八步:生成安装文件
在“解决方案管理器”中选择我们要发布的项目,点选右键中的“生成”或者“重新生成”。成功以后我们可以直接到解决方案所在的文件夹中找到生成的文件。这一步也可以用系统“生成”菜单生成。
 

有时候程序的安装运行还需要某些软件、补丁,比如IE的版本要在5.0以上等,这时就需要添加启动条件。在“解决方案资源管理器”中选择“SetupTest”项目。在“视图”菜单上指向“编辑器”,然后单击“启动条件”。在“启动条件编辑器”中,选择“目标计算机上的要求”节点。在“操作”菜单上选择“添加文件启动条件”。此时,将在“搜索目标计算机”节点之下添加一个“搜索 File1”节点,在“启动条件”节点之下添加一个“Condition1”节点(condition :以…为条件)。将“搜索 File1”重命名为“搜索 Internet Explorer”。在“属性”窗口中,将“FileName”属性设置为 Iexplore.exe,将“Folder”属性设置为 [ProgramFilesFolder],将“Depth”属性设置为 2,将“MinVersion”属性设置为 5.00。选择“Condition1”节点。将“Message”属性设置为下面的内容为“此程序需要 Microsoft Internet Explorer 5.0 或更高版本。请安装 Internet Explorer 并重新运行 My TEST Installer。”

 
以上内容参考了以下两个网站

http://q.sohu.com/forum/5/topic/4708441

http://blog.csdn.net/lanmao100/archive/2008/03/03/2142397.aspx

这是我第一次打包程序总结的打包过程,中间肯定有不完善的地方,哪位高人看到了,帮我指出并完善,谢谢!

VS打包的更多相关文章

  1. Android Studio 多个编译环境配置 多渠道打包 APK输出配置

    看完这篇你学到什么: 熟悉gradle的构建配置 熟悉代码构建环境的目录结构,你知道的不仅仅是只有src/main 开发.生成环境等等环境可以任意切换打包 多渠道打包 APK输出文件配置 需求 一般我 ...

  2. 【原创分享·支付宝支付】HBuilder打包APP调用支付宝客户端支付

    前言 最近有点空余时间,所以,就研究了一下APP支付.前面很早就搞完APP的微信支付了,但是由于时间上和应用上的情况,支付宝一直没空去研究.然后等我空了的时候,发现支付宝居然升级了支付逻辑,虽然目前还 ...

  3. 细说前端自动化打包工具--webpack

    背景 记得2004年的时候,互联网开发就是做网页,那时也没有前端和后端的区分,有时一个网站就是一些纯静态的html,通过链接组织在一起.用过Dreamweaver的都知道,做网页就像用word编辑文档 ...

  4. .NET Core 系列5 :使用 Nuget打包类库

    NuGet是个开源项目,项目包括 NuGet VS插件/NuGet Explorer/NuGetServer/NuGet命令行等项目,.NET Core项目完全使用Nuget 管理组件之间的依赖关系, ...

  5. Node-Webkit打包

    1.node-webkit是什么? NW.js is an app runtime based on Chromium and node.js. You can write native apps i ...

  6. Gradle 实现 Android 多渠道定制化打包

    Gradle 实现 Android 多渠道定制化打包 版权声明:本文为博主原创文章,未经博主允许不得转载. 最近在项目中遇到需要实现 Apk 多渠道.定制化打包, Google .百度查找了一些资料, ...

  7. 【踩坑速记】开源日历控件,顺便全面解析开源库打包发布到Bintray/Jcenter全过程(新),让开源更简单~

    一.写在前面 自使用android studio开始,就被它独特的依赖方式:compile 'com.android.support:appcompat-v7:25.0.1'所深深吸引,自从有了它,麻 ...

  8. 4.Android 打包时出现的Android Export aborted because fatal error were founds [closed]

    Android 程序开发完成后,如果要发布到互联网上供别人使用,就需要将自己的程序打包成Android 安装包文件(Android Package,APK),其扩展名为.apk.使用run as 也能 ...

  9. 初学seaJs模块化开发,利用grunt打包,减少http请求

    原文地址:初学seaJs模块化开发,利用grunt打包,减少http请求 未压缩合并的演示地址:demo2 学习seaJs的模块化开发,适合对seajs基础有所了解的同学看,目录结构 js — —di ...

  10. 以向VS 程序打包集成自动写入注册表功能为例,介绍如何实现自由控制安装过程

    最近由于项目部署时需要更灵活的控制程序安装的流程以及自定义安装行为,特意研究了一下VS程序打包,把解决办法和大家分享一下. 以VS2010为例: 这是一个已经设置好最基本的Visual Studio ...

随机推荐

  1. AIM Tech Round 3 (Div. 2) (B C D E) (codeforces 709B 709C 709D 709E)

    rating又掉下去了.好不容易蓝了.... A..没读懂题,wa了好几次,明天问队友补上... B. Checkpoints 题意:一条直线上n个点x1,x2...xn,现在在位置a,求要经过任意n ...

  2. 如何自己动手实现 KVO(转)

    KVO (Key-Value Observing) KVO 是 Objective-C 对观察者模式(Observer Pattern)的实现.也是 Cocoa Binding 的基础.当被观察对象的 ...

  3. IIS连接数

    IIS连接数,也叫IIS并发数(Current Connections),是指同一时间内,有多少个对服务器的请求 一般情况下一个浏览器会占用2个IIS连接 同一个浏览器(IE.Firefox等)窗口中 ...

  4. 一个GCC4.6.3的奇妙问题的糊涂解决方案

    因为工作中需要OpenCV,又不想用Windows,所以我就在Linux下编译安装OpenCV了.一开始,由于我的计算机不能安装ubuntu12.04,所以我安装了ubuntu13.04,opencv ...

  5. 0 Explore TreeView

    尽可能接近WINDOWS 8的资源管理器效果(这里只模仿它的效果,处理文件功能不包括在内)   TREEVIEW可以增加空白并且空白处不能单击 重绘三角箭头 重绘选中时的边框和填充色 重绘失去焦点时选 ...

  6. Ubuntu下配置 keepalived+nginx+tomcat 负载均衡

    本文力图阐述在 Ubuntu Server 环境下使用 Keepalived + Nginx + Tomcat 搭建高可用负载均衡环境的操作步骤和简约配置,这里不涉及性能调优.先说一下他们各自扮演的角 ...

  7. iOS开发——网络编程OC篇&Socket编程

    Socket编程 一.网络各个协议:TCP/IP.SOCKET.HTTP等 网络七层由下往上分别为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 其中物理层.数据链路层和网络层通常被称作 ...

  8. 玩转iOS开发 - 简易的实现2种抽屉效果

    BeautyDrawer BeautyDrawer 是一款简单易用的抽屉效果实现框架,集成的属性能够对view 滑动缩放进行控制. Main features 三个视图,主视图能够左右滑动.实现抽屉效 ...

  9. There is no Action mapped for action name XXX. - [unknown location]

    今天被这个问题费了不少时间,原因是缺少了 struts2-json-plugin-2.3.1.2.jar 包 当然,有时候也可能是缺少其他包, 把这个包添加到lib文件夹后还要刷新,clean一下,因 ...

  10. forward_list例子

    9.28 编写函数,接受一个forward_list<string>和两个string共三个参数.函数应在链表中查找第一个string,并将第二个string插入到紧接着第一个string ...