[转载]如何用Visual Studio制作安装包
环境: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]”去掉。
[转载]如何用Visual Studio制作安装包的更多相关文章
- 使用Visual Studio制作安装包
目 录 第1章 合并模块 3 1.1 SystemDll 3 1.1.1 收集文件 3 1.1.2 新建项目 4 1.1.3 增加自定义文件夹 4 1.1.4 设置部署位 ...
- Visual Studio 2003安装包
点击下载
- Visual Studio 2005安装包
点击下载
- Visual Studio 2010安装包
点击下载
- Visual Studio 2012安装包
点击下载
- Visual Studio 2013安装包
点击下载
- Visual Studio 2014安装包
点击下载
- Visual Studio 2015安装包
点击下载
- 使用VS2015制作安装包( 含相关的下载链接)
补充: 在看下面的教程过程中,如果在下面的步聚1中没有 " Visual Studio Installer", 则需要通过下面的链接进行安装 Visual Studio Insta ...
随机推荐
- socks5代理使用和安装配置
Socks简介: 详情可以百度,不过我猜你对那一大堆术语也会像我一样觉得无语, 所以我觉得你可以简单理解为它可以比较完美代理http/ftp/smtp等多种协议的代理工具就行了. 其中最具有典型例子的 ...
- matlab 函数句柄@的介绍_什么是函数句柄(转)
http://blog.csdn.net/kevinhg/article/details/8861774 http://www.ilovematlab.cn/thread-30375-1-1.html ...
- ajax跨域请求在IE8中存在的问题
从没打算怎么去兼容老版本IE,毕竟微软自己都放弃了,可是最近做好的东西在所有的IE下都会出问题:GetJson不执行 本来觉得挺简单的,度娘也给出了一大堆的解决方案,可惜,基本上都是在说缓存,实际上并 ...
- Javascript (ECMAScript5) 的细节和违反直觉的地方
记录在学习Javascript (ECMAScript5) 中的一些与其他语言的不同之处,本文会不断更新. 里面的知识可能并不太适合有一定经验的Javascript程序员,仅仅但不限于给初学者阅读. ...
- [USACO08DEC]Patting Heads
嘟嘟嘟 这题还是比较水的.首先O(n2)模拟显然过不了,那就换一种思路,考虑每一个数对答案的贡献,显然一个数a[i]会对后面的a[i] * 2, a[i] * 3,a[i] * 4……都贡献1,.那么 ...
- 为什么会有object这么一个根基类
先问一个问题,为什么需要有一个统一的基类:Object?甚至,我们在编程语言中也常常见到这种模式,比如Java中的object.C#的object,甚至一些纯对象的脚本语言(Ruby里连数字123都是 ...
- tomcat服务器宕机解决方案
报错信息: java.lang.Object.wait(Native Method) java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:1 ...
- P1131 [ZJOI2007]时态同步
题目描述 小Q在电子工艺实习课上学习焊接电路板.一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数字1,2,3….进行标号.电路板的各个节点由若干不相交的导线相连接,且对于电路板的任何两个节点 ...
- OpenGL笔记(一) 绘制三角形
GLTools: 一些有用且可复用的函数 GLEW: OpenGL API的一些扩展机制 GLUT: OpenGL Utility toolkit, OpenGL跨平台相关,隐藏平台相关细节 RC代表 ...
- 【Linux】LVM逻辑卷管理和RAID
LVM概述: 是对磁盘分区进行管理的一种机制 是一种将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不 够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现一种磁盘空 ...