C# winform  Visual Studio Installer打包教程

软件在功能开发实现后,其实并没有真正的完成。对于一个专业的开发者来说,Release软件应该是以安装版本的形式进行发布的,这篇文章将具体介绍如何使用VS2010下Visual Studio Installer进行打包软件。

 

Setp1.首先建立Visual Studio Installer下Setup Project工程,如下图1:

图1

Step2.在“应用文件夹”下选择“添加”,再选择“文件”,如图2:

图2

Step3.在弹出的对话框中,选择我们已编写好的文件,如.exe/ .dll等,注意:这里只选择软件一级目录下的文件。其实,“Application Folder”对应的就是软件文件夹,如图3:

一定要注意第三步和第四步。这两步很重要,因为我掉进这个坑半天,所以特意提醒大家一下,一定要选择软件一级目录下的文件。

                                                                                                                       图3

Step4.由于我们编写的软件中带有Config/ Database…等文件夹,所以在“Application Folder”文件夹目录下也要建立对应的文件夹。操作步骤为:“Application Folder”-->“Add”-->“Folder”,具体如下图4所示:

图4

Step5.上一步的文件夹添加完成之后,接下来就需要把已编写好的软件内,对应的每一个文件夹下的文件进行添加,添加的步骤如下图5所示:

图5

Step6.接下来,我们要创建快捷方式,具体操作为:选择.exe文件所在目录“Application Folder”-->在右边的“Name”下右键点击.exe名称-->“创建快捷方式”,同时,你可以重命名快捷方式的名称。具体如下图6

图6

Step7.将快捷方式拖放置“User’s Desktop”或“User’sPrograms Menu”下,同时,也可以在快捷方式的Icon属性内设置快捷方式的图标。如图7所示:

图7

Step8.设置系统必备,右键选择项目的属性,进入属性页中。在属性页下选择“Prerequisites”,如图8

图8

Step9.设置系统所需,重要一点:“从与我的应用程序相同的位置下载系统必备组件”必选

图9

Step10.添加卸载程序,选择“Application Folder”文件夹-->“Add”-->“File…”-->添加C:\WINDOWS\system32\msiexec.exe,(或者自己写一个卸载程序也是可以的)。如图10所示:

图10

Step11.设置卸载程序。首先创建msiexec.exe的快捷方式-->然后重命名快捷方式为“UnInstall.exe”-->接着把此项目的ProductCode(右击项目名称属性可以找到ProductCode)前添加“/x”设置到“UnInstall.exe”的Arguments属性内,具体如下图11

图11

Step12.重复Step7,把卸载程序的快捷方式拖到“User’s Programs Menu”内

Step13.更改项目属性,如作者及相关属性,如下图12所示:

图12

Step14.编译生成安装项目:

针对警告部分:

关于msiexec.exe的警告无需处理,因为msiexec.exe文件是受Windows保护,所以弹出警告。

关于dll对象重复的警告,删除一个即可。

C# winform Visual Studio Installer打包教程的更多相关文章

  1. C# winform Visual Studio Installer打包教程,安装包

    //具体打包过程,参考下面网址 https://www.cnblogs.com/dongh/p/6868638.html VS 扩展和更新-联机 搜索 Microsoft Visual Studio ...

  2. Visual Studio Installer打包后生成的安装文件每次执行都需要重新安装C++ 2010运行库(x86)的解决方案

    原文:Visual Studio Installer打包后生成的安装文件每次执行都需要重新安装C++ 2010运行库(x86)的解决方案 如果你是用Visual Studio自带的打包项目打包了一个I ...

  3. Visual Studio Installer打包安装项目VS2015

    使用VS2015的Visual Studio Installer打包安装项目,虽然整体操作很简单,但还是有几个特殊的点需要记一下,故写下此博客方便以后查阅 第一步,创建安装项目 如下: 里面最左侧的框 ...

  4. visual studio installer 打包123

    下载安装visual studio installer

  5. 使用Visual Studio Installer 2015打包WPF程序

    前言 做过WPF项目,就少不了要将程序打包部署到客户现场,因为一般长时间不会更新打包程序,每次变动较大需要重新配置打包程序时,就会有些生疏,不那么得心应手.为了方便记忆,记录到博客中. 准备 因为做过 ...

  6. InstallShield Limited Edition for Visual Studio 2013 图文教程(教你如何打包.NET程序)

    InstallShield Limited Edition for Visual Studio 2013 图文教程(教你如何打包.NET程序) 标签: InstallShieldVS2013 2015 ...

  7. Limited Edition for Visual Studio 2013 图文教程(教你如何打包.NET程序)

    原文:InstallShield Limited Edition for Visual Studio 2013 图文教程(教你如何打包.NET程序) InstallShield Limited Edi ...

  8. Visual Stdio 2015打包安装项目的方法(使用Visual Studio Installer)

    首先在官网下载VS2015的Visual Studio Installer 1.创建安装项目 里面最左侧的框框有三个文件夹 1.“应用程序文件夹”即"Application Folder&q ...

  9. InstallShield Limited Edition for Visual Studio 2013 图文教程打包安装包

    http://www.wuleba.com/23892.html 从Visual Studio 2012开始,微软就把自家原来的安装与部署工具彻底废掉了,转而让大家去安装使用第三方的打包工具“Inst ...

随机推荐

  1. 配置tomcat-users

    <role rolename="admin-gui"/><role rolename="admin-script"/><role ...

  2. idea中web.xml报错 Servlet should have a mapping

    配置springmvc时,报错,实际mapping已经写了,错误截图如下: 搜索无果,后来发现是工程的web.xml位置配置错误,因为我之前换过根目录位置. 修改方法: 打开Project Struc ...

  3. 深度学习(十五) TextCNN理解

    以下是阅读TextCNN后的理解 步骤: 1.先对句子进行分词,一般使用“jieba”库进行分词. 2.在原文中,用了6个卷积核对原词向量矩阵进行卷积. 3.6个卷积核大小:2个4*6.2个3*6和2 ...

  4. 解决问题的思维方式之Problem->Desgin->Solution(笔记)

    Problem->Desgin->Solution: 1.对于每个需要实现的功能问题,我们都称之为Problem(问题). 2.解决问题的具体思考过程,寻求解决问题的方案,即为Desgin ...

  5. C 标准库 - ctype.h之isalnum使用

    isalnum int isalnum ( int c ); Checks whether c is either a decimal digit or an uppercase or lowerca ...

  6. 快速排序分析及实现(C++)

    目录 快速排序算法分析及实现(C++) 算法思想 快速排序步骤 优点分析 C++语言实现 快速排序算法分析及实现(C++) 算法思想 ​ 把n个元素划分为三段:左端Left,中间段middle和右端r ...

  7. maven在pom文件中添加你想要的jar包

    概述:POM 文件里面的依赖jar包经常需要添加, 仅需要在google中代码查找 :maven 你需的jar包名称 repository 用了Maven,所需的JAR包就不能再像往常一样,自己找到并 ...

  8. [PY3]——内置数据结构(9)——线性结构与切片/命名切片slice()

    线性结构的总结 列表list  元组tuple  字符串str  bytes  bytearray的共同点: 都是顺序存储.顺序访问的: 都是可迭代对象: 都可以通过索引访问 线性结构的特征: 可迭代 ...

  9. 控件--spinner(列表选项框)

    1. 关键点 1). Spinner的菜单显示方式 它有两种显示形式,一种是下拉菜单,一种是弹出框,菜单显示形式是spinnerMode属性决定的: android:spinnerMode=" ...

  10. Response.cookies和Request.cookies

    Response.cookies和Request.cookies的区别很重要,由于方法基本都是差不多的,特别对于初学者而言,很容易出现混淆. 简单说就是创建cookie用response,获取cook ...