同学让帮忙打包个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. 曝光卖假币的店铺和旺旺ID

    1:店铺名称:九玖邮币 掌柜ID:九玖邮币[此人较贼,价格只比我们低一点,图用的不太清晰的,或者直接用真品图,而且卖假币卖到2钻了,很多人上当了.]1.5 店铺名称:聚鑫钱币 掌柜ID:聚鑫钱币 [1 ...

  2. 在virtualbox上安装mac os mavericks遇到Missing Bluetooth Controller Transport问题解决办法

    挂载 HackBoot_Mav.iso 作为光驱,启动在 磁盘选择 界面,选择磁盘后按空格键,输入 启动参数 -v -x(-x的意思是安全模式,不这样的话,有蓝牙驱动作怪, 会输出 [IOBlueto ...

  3. 通过在shell脚本中用scp或rsync实现远程同步文件

    通过在shell脚本中用expect实现远程scp文件  shell expect的简单用法 http://myunix.blog.51cto.com/191254/1095074 http://ji ...

  4. Visual Studio中的Build Event

    在VS中,进行build时,可以在build之前,或者之后执行一些操作,比如把一些css,font,images文件从一个项目的文件夹复制到另一个项目的文件夹 方法: 点击项目,右键-属性-Build ...

  5. C++学习笔记(十一):void*指针、类型转换和动态内存分配

    void*指针 void关键字表示“空类型”的概念.但是,这里的“空类型”不表示“任意类型”,而是表示不存在的意思,也就是说C/C++不允许你写语句void a,不存在类型为void的东西. void ...

  6. C# & SQLite - Storing Images

      Download source code - 755 KB Introduction This article is to demonstrate how to load images into ...

  7. SMP和MAPP的区别

    SMP(Symmetrical Multi-Processing),对称多处理系统,是指在一个计算机上汇集了一组处理器(多CPU),各CPU之间共享内存子系统以及总线结构.它是相对非对称多处理技术而言 ...

  8. How good software makes us stupid?

    How good software makes us stupid? 科技是怎样让人变傻的? People assume that iPhones, laptops and Netflix are e ...

  9. ABAP DEBUG

    [Function] Command=/H Type=SystemCommand 将上面的文件推动到SAP 窗口 可以启动调试 ------------------------------------ ...

  10. libpq程序例子

    程序: [root@lex tst]# cat testlibpq.c /* * testlibpq.c * Test the C version of LIBPQ, the POSTGRES fro ...