环境:Microsoft Visual Studio 2010

语言:C#

构架:.NET Framework 2.0

解决方案名称:Setup1

步骤:

1、新建项目,依次找到:其他项目类型>>安装和部署>>Visual Studio Installer>>安装项目

2、选择“应用程序文件夹”项,然后在右边的空白区域右击,选择:添加>>文件,之后选中需要添加的程序主文件(即位于../bin/Debug文件夹下的exe文件,可以在原程序制作项目中单击F6生成)。

3、在这里还可以增加其他文件,比如图标、配置文件、图片等,另外还可以建立文件夹以便程序安装后使用。要注意的是,如果建立的文件夹是空的,默认情况下是不会在安装时创建的,需要将该文件夹的“AlwaysCreate”属性设置为True方可。

4、然后为程序创建快捷方式:在添加的exe文件上右击,选择“创建XXX的快捷方式”,“XXX”为该exe文件的文件名,然后将快捷方式剪切、粘贴到“用户的‘程序’菜单”和“用户桌面”。单击某一个快捷方式,单击其”Icon”属性,选择“浏览”,找到之前添加到项目中的图标文件即可。

———————–接下来的步骤非常重要———————-

5、在“解决方案资源管理器”中的解决方案名称(本例中为“Setup1”)上右击,打开“属性”页,在弹出的新窗口的右下角有一个“系统必备”按钮,单击它。

由于我们选用的是2.0架构,因此取消默认的4.0。另外,选中“从与我的应用程序相同的位置下载系统必备组件”,确定即可。

6、仍是在解决方案名称上右击,依次选择:视图>>启动条件。然后在启动条件中单击“.NET  Framework”,在属性选项卡中将其“Version”属性选为相应的版本,本例中为2.0。

一切设置妥当后,按F6就可以生成安装程序了。状态栏提示成功生成后,可以到“Setup1”项目的Debug文件夹中找到制作好的安装包,按照之前的设置会生成2个文件和1个文件夹,将他们用Winrar或其他压缩软件打包起来即可。

———————–接下来的操作是可选的———————-

1、在生成安装程序前,还可以通过单击解决方案名称(本例中为“Setup1”),之后在其属性选项卡中修改相关属性。包括“Author”(作者)、“Manufacturer”(制造商)等属性。

2、单击“应用程序文件夹”项,在属性选项卡中可以通过修改DefaultLocation属性来更改程序的默认安装位置,其值默认为“[ProgramFilesFolder][Manufacturer][ProductName]”,一般可以将“[Manufacturer]”去掉。

原文转载至:http://www.misins.org/archives/460

[转载]如何用Visual Studio制作安装包的更多相关文章

  1. 使用Visual Studio制作安装包

    目 录 第1章 合并模块    3 1.1 SystemDll    3 1.1.1 收集文件    3 1.1.2 新建项目    4 1.1.3 增加自定义文件夹    4 1.1.4 设置部署位 ...

  2. Visual Studio 2003安装包

    点击下载

  3. Visual Studio 2005安装包

    点击下载

  4. Visual Studio 2010安装包

    点击下载

  5. Visual Studio 2012安装包

    点击下载

  6. Visual Studio 2013安装包

    点击下载

  7. Visual Studio 2014安装包

    点击下载

  8. Visual Studio 2015安装包

    点击下载

  9. 使用VS2015制作安装包( 含相关的下载链接)

    补充: 在看下面的教程过程中,如果在下面的步聚1中没有 " Visual Studio Installer", 则需要通过下面的链接进行安装 Visual Studio Insta ...

随机推荐

  1. socks5代理使用和安装配置

    Socks简介: 详情可以百度,不过我猜你对那一大堆术语也会像我一样觉得无语, 所以我觉得你可以简单理解为它可以比较完美代理http/ftp/smtp等多种协议的代理工具就行了. 其中最具有典型例子的 ...

  2. matlab 函数句柄@的介绍_什么是函数句柄(转)

    http://blog.csdn.net/kevinhg/article/details/8861774 http://www.ilovematlab.cn/thread-30375-1-1.html ...

  3. ajax跨域请求在IE8中存在的问题

    从没打算怎么去兼容老版本IE,毕竟微软自己都放弃了,可是最近做好的东西在所有的IE下都会出问题:GetJson不执行 本来觉得挺简单的,度娘也给出了一大堆的解决方案,可惜,基本上都是在说缓存,实际上并 ...

  4. Javascript (ECMAScript5) 的细节和违反直觉的地方

    记录在学习Javascript (ECMAScript5) 中的一些与其他语言的不同之处,本文会不断更新. 里面的知识可能并不太适合有一定经验的Javascript程序员,仅仅但不限于给初学者阅读. ...

  5. [USACO08DEC]Patting Heads

    嘟嘟嘟 这题还是比较水的.首先O(n2)模拟显然过不了,那就换一种思路,考虑每一个数对答案的贡献,显然一个数a[i]会对后面的a[i] * 2, a[i] * 3,a[i] * 4……都贡献1,.那么 ...

  6. 为什么会有object这么一个根基类

    先问一个问题,为什么需要有一个统一的基类:Object?甚至,我们在编程语言中也常常见到这种模式,比如Java中的object.C#的object,甚至一些纯对象的脚本语言(Ruby里连数字123都是 ...

  7. tomcat服务器宕机解决方案

    报错信息: java.lang.Object.wait(Native Method) java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:1 ...

  8. P1131 [ZJOI2007]时态同步

    题目描述 小Q在电子工艺实习课上学习焊接电路板.一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数字1,2,3….进行标号.电路板的各个节点由若干不相交的导线相连接,且对于电路板的任何两个节点 ...

  9. OpenGL笔记(一) 绘制三角形

    GLTools: 一些有用且可复用的函数 GLEW: OpenGL API的一些扩展机制 GLUT: OpenGL Utility toolkit, OpenGL跨平台相关,隐藏平台相关细节 RC代表 ...

  10. 【Linux】LVM逻辑卷管理和RAID

    LVM概述: 是对磁盘分区进行管理的一种机制 是一种将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不 够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现一种磁盘空 ...