环境: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. mysql 创建数据数据库 (避免新建的库名已经存在、设置编码)

    1.创建数据库的 create database 数据库名 eg: Create database mydatabase 查看已创建的数据: show databases; 结果: 2.数据库名所对应 ...

  2. Apache下开启SSI配置,使html支持include包含

    有的时候,我们的页面有公共的导航栏navbar,公共的脚注footer,那么我们就想把这些公共部分独立成一个html文件,在要引用的地方像引用js,css一样,给包含进来. Apache下开启SSI配 ...

  3. 理解活在Iphone中的那些App (二)

    app是什么,为什么而存在 存在即合理的说法,已经被批臭批烂了.所以,作为一个程序员不能简简单单的因为上面来了一个需求,就完成一个需求.让做一个app就做一个app,只是简单的认为存在即合理,头让写就 ...

  4. 【笔记】关于TCP三次握手和四次挥手的理解

    1. 三次握手: 服务器一定处于Listen状态,否则客户端发过来的连接会被拒绝.注:服务器和客户端的角色是相对的. 客户端发送第一次握手(客户端发送连接请求(SYNC包)到服务器)之后由Closed ...

  5. oracle 禁用/启动job

    注意:dbms_job只能在job的所在用户使用,如果broken其它用户的job用dbms_ijob dbms_job只能在当期用户内创建job.修改和删除job,不能对其他用户的job进行操作;s ...

  6. [USACO08JAN]Running

    嘟嘟嘟 这很显然是一道dp题. 令dp[i][j]表示第 i 分钟末,疲劳度为 j 是的最大跑步距离,则 dp[i][0] = max(dp[i - 1][0], max(dp[i - j][j])) ...

  7. php中static静态变量的使用方法详解

    php中的变量作用范围的另一个重要特性就是静态变量(static 变量).静态变量仅在局部函数域中存在且只被初始化一次,当程序执行离开此作用域时,其值不会消失,会使用上次执行的结果.     看看下面 ...

  8. AE-----界面介绍

    AE-----界面介绍 一.大纲leiji 层级: 比如:高楼一层一层的盖起来的.千层蛋糕(一层一层的).地质(一层一层构造的) 图层的特征:有顺序.上面的一层总会覆盖掉下面的一层. AfterEff ...

  9. java.lang.NoClassDefFoundError: org/apache/ibatis/mapping/DatabaseIdProvider

    我用的方案是:maven+struts2+spring+mybatis 出现上述错误的原因是: <dependency>            <groupId>org.myb ...

  10. CAN--UART的协议转换器

    CAN--UART的协议转换器 //------------------------------------------------------//  CAN <==> UART的协议转换 ...