同学让帮忙打包个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. 【现代程序设计】【homework-02】【11061027】

    Q:描述在这么多相似的需求面前, 你怎么维护你的设计 (父类/子类/基类, UML, 设计模式,  或者其它方法) 让整个程序的架构不至于崩溃的? A:由于使用的是面向过程的C语言,所以维护设计这个问 ...

  2. decorview that was originally added here or java.lang.IllegalArgumentException: View not attached to window manager

    使用Dialog的时候,没少出现下面这两个报错 12-11 17:47:49.776: E/WindowManager(11461): android.view.WindowLeaked: Activ ...

  3. light oj 1116 - Ekka Dokka

    1116 - Ekka Dokka   PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB Ekka ...

  4. Umbraco Forms 使Rendering Forms scripts 在不同的template中

    具体请参考 https://our.umbraco.org/documentation/products/umbracoforms/developer/Rendering-Scripts/ 转载 ht ...

  5. 转载 ASP.NET常用的正则表达式

    转载原地址: http://www.cnblogs.com/0001/archive/2010/01/26/1656677.html 常用表达式: "^\d+$" //非负整数(正 ...

  6. [置顶] HTML语义和前端架构

    关于语义学 语义学是研究符号和意义之间的关系以及它们表示的内容.在语言学中,则主要是研究符号(例如单词,短语或者语音)在语言中所表达的意义.而在前端开发时,语义学则更多的关注HTML元素,属性以及它的 ...

  7. angular-tour 用户新手引导

    下载安装 bower install angular-tour 建立依赖,引入文件 <script src="bower_components/jquery/jquery.js&quo ...

  8. 表单,css

  9. R 语言画图的基本参数

    R 语言画图的基本参数 点 点的种类 点的种类参数为 pch,每一种符号对应一个数字编号 # 点有25种,为了展示25种点 x = 1:25 y = 1:25 x ## [1] 1 2 3 4 5 6 ...

  10. View绘制详解(四),谝一谝layout过程

    上篇博客我们介绍了View的测量过程,这只是View显示过程的第一步,第二步就是layout了,这个我们一般译作布局,其实就是在View测量完成之后根据View的大小,将其一个一个摆放在ViewGro ...