作为研发人员,在本机上开发的winform、wpf或者控制台程序需要发给其他人测试时候,一般需要对其进行打包生成setup安装文件,根据网上查找的资料并结合自己打包成功,记录如下:

注:本程序是一个利用winform实现的客户端程序,解决方案为

第一步,右击“解决方案XXX”->添加“新建项目”-》“其他项目类型”-》“安装和部署”-》“安装向导”

然后点击下一步:

这里保持默认即可“为WIndows应用程序创建一个安装程序”-》

选择“主输出来自**(项目名称:XXX)”(注意:如果有多个项目合成一个解决方案也要选择,就是都选择主输出来自XXX)——》

这里我们没有额外附件添加,所以直接点击下一步即可,“完成”即可。

到这里第一部分完成,接下来就是修改属性了。

右击解决方案中的setup,选择“属性”-》

第二步,点击“系统必备”-》

单选按钮中,选择“从与我的应用程序相同的位置下载系统必备组件”-》确定

第三步,点击,左边的“应用程序文件夹”-》

从右侧属性列表中,修改属性DefaultLocation“[ProgramFilesFolder][Manufacturer]\[ProductName]”为:[ProgramFilesFolder]\[ProductName],否则安装路径不允许用户选择。

右击”应用程序文件夹“,点击”添加“,点击”文件“或(有文件夹)”文件夹”。将你的Release目录下面的文件全部(软件需要的文件夹、dll等)添加进来,有文件夹的需要在应用程序文件夹目录下新建子文件夹,同时文件夹里有文件的也需要添加进去。(非常重要)

下图为本人添加好的:

第四步,点击“应用程序文件夹”,右击右边的“主输出来自XXX(..”创建其快捷方式(快捷方式可以改名)(注意:这里的主输出是指最终在你release版本中,程序能够产生exe运行文件的主输出)-》

将快捷方式拖拽到“用户的程序菜单”和“用户桌面”,这样安装完成后,就会在桌面和用户的程序菜单创建相应的图标。

第五步,创建卸载程序。右击”应用程序文件夹“,点击”添加“,选择”文件“,然后将"C:\Windows\System32" 下面的”msiexec.exe“(这个msiexec.exe文件最好选择Win7系统下的,这样可以兼容Win10系统)文件给添加进来,如果找不到,你可以直接搜。当然,你也可以再给msiexec.exe创建一个快捷方式命名为”UnInstall“。

命名了快捷方式之后,将Setup属性(点击解决方案里面的setup弹出属性)ProductCode拷贝到Uninstall属性的Arguments里面:

同时在前头加上 ”/X “,注意:x后面有一个空格。

第六步,添加程序图标,右键点击“用户桌面”中的快捷方式,然后再其属性中找到,Icon属性,浏览选取你所要添加的图标,记住,应该先将图标放在打包的文件夹或应用程序文件夹中,要不然无法进行指定。

第七步,右击setup项目名称,选择“生成”,然后到,生成的目录下拷贝出setup.exe即可安装。

进行到第七步时,用vs为winform程序打包就已经完成了,不过此时会在安装程序的Debug文件夹生成2个文件夹、1个.exe文件和1个.msi文件,而.exe安装时,又依赖于.msi文件,另外两个文件夹是对应的 .NET Framework 组件,

这个时候给客户安装时拷贝过去的内容较多,也容易安装出错,如果把这些安装内容都打在一起,形成一个.exe 文件,就比较方便了,此时,可以用winrar的自解压格式压缩文件来实现,实现过程:

1>将要打在一起的文件及文件夹全部选中,右键 →“添加到压缩文件”,在打开的压缩面板的“常规”选项卡中勾选“创建自解压格式压缩文件”,此时会发现默认的压缩文件名编程了  .exe 后缀名了;压缩方式最好选择“存储”,这样打包后的程序会很快解压缩并运行。如图:

2>设置运行文件:再切换到“高级”选项卡,点击“自解压选项”,“常规”里设置程序解压后运行的文件(这个很重要)如图:

或者遇到这种情况,那么提取后运行(点击安装时运行)和提取前运行(生成.exe文件时运行,将压缩成的.exe文件安装包的图标立马换掉,不会等到点击安装时更换)都要加上要运行的exe文件

3>设置安装程序文件的图标:

切换到“文本和图标”,点击“从文件加载自解压文件图标”后的“浏览”按钮,选择安装程序文件的图标,如图:

先不要着急点击“确定”,还有最后一项设置~ ~ ~

4>切换到“模式”下,勾选“解包到临时文件夹”和“隐藏全部”,再切换到“更新”下,勾选“覆盖所有文件”,一路点击“确定”,大功告成!!

完成了!

“项目名.exe” 就是最中生成的打包文件,直接点击运行就行了!!

以上就是本人结合网上资料和其他博友文章,亲身实践成功的C# Winform程序打包成安装项目的心得,并且里面还加入了本人碰到的一些注意事项,特地写成文章分享给大家。

C# winform程序怎么打包成安装项目(VS2010图解)的更多相关文章

  1. C# winform程序怎么打包成安装项目(图解)

    1:新建安装部署项目 打开VS,点击新建项目,选择:其他项目类型->安装与部署->安装向导(安装项目也一样),然后点击确定.(详细见下图) 此主题相关图片如下: 2:安装向导 关闭后打开安 ...

  2. C# 程序打包成安装项目

    Xaml设置图标https://blog.csdn.net/u014234260/article/details/73648649 winform程序控制面板中卸载显示图标https://blog.c ...

  3. 黄聪:C#Winform程序如何发布并自动升级(图解)

    有不少朋友问到C#Winform程序怎么样配置升级,怎么样打包,怎么样发布的,在这里我解释一下打包和发布关于打包的大家可以看我的文章C# winform程序怎么打包成安装项目(图解)其实打包是打包,发 ...

  4. 【转】C#Winform程序如何发布并自动升级(图解)

    有不少朋友问到C#Winform程序怎么样配置升级,怎么样打包,怎么样发布的,在这里我解释一下打包和发布关于打包的大家可以看我的文章C# winform程序怎么打包成安装项目(图解)其实打包是打包,发 ...

  5. C#Winform程序如何发布并自动升级(图解)

    C#Winform程序如何发布并自动升级(图解)     有不少朋友问到C#Winform程序怎么样配置升级,怎么样打包,怎么样发布的,在这里我解释一下打包和发布 关于打包的大家可以看我的文章C# w ...

  6. C# winform 打包成安装程序(exe)

    C# 打包成安装程序 1.扩展-> 安装扩展 联网搜索 install     2.新建安装程序项目      3.添加程序   4.添加打包需要的文件 5. 添加x86与x64文件夹,并添加s ...

  7. sencha touch打包成安装程序

    为了更好地向大家演示如何打包一个sencha touch的项目,我们用sencha cmd创建一个演示项目,如果你的sencha cmd环境还没有配置,请参照 sencha touch 入门系列 (二 ...

  8. sencha touch 扩展篇之将sencha touch打包成安装程序(上)- 使用sencha cmd打包安装程序

    由于最近一直忙着android原生的开发,很久没有更新博客了,官方的sencha cmd工具功能非常强大,创建项目,压缩项目,打包安装程序都能轻松实现,这讲我们就给大家介绍下如何使用sencha cm ...

  9. Expo大作战(十八)--expo如何发布成独立应用程序,打包成apk或者ipa,发布到对应应用商店

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

随机推荐

  1. dell T130服务器加内存

    需求:客户一台dell T130塔式服务器,由于本机只有一条8G内存,系统运行比较慢,需要再增加一条8G内存. 增加过程:第一次增加时由于没有注意机器上内存频率是2133的,所以新增加的一条2400频 ...

  2. 28.TreeSet

    与HashSet是基于HashMap实现一样,TreeSet同样是基于TreeMap实现的.在前一篇中详细讲解了TreeMap实现机制,如果客官详细看了这篇博文或者对TreeMap有比较详细的了解,那 ...

  3. .NET简单学习

    .NET是一个平台,对用户来说,只要下载了.NET Framework就可以运行.NET程序,获得需要的服务:对开发人员来说,平台对开发有着强有力的支持,方便创作各种应用软件. .NET Framew ...

  4. Akka-CQRS(5)- CQRS Writer Actor 部署和测试

    上篇我们做了一个WriterActor的例子,主要目的是示范WriterActor如何作为集群分片用persistentActor特性及event-sourcing模式实现CQRS的写功能.既然是集群 ...

  5. Cobaltstrike、armitage联动

    i 春秋作家:fengzi 原文来自:Cobaltstrike.armitage联动 在使用Cobaltstrike的时候发现他在大型或者比较复杂的内网环境中,作为内网拓展以及红队工具使用时拓展能力有 ...

  6. MySQL Schema与数据类型的优化

    选择优化的数据类型: 1. 更小的通常更好: 一般情况下,应该尽量使用可以正确存储数据的最小数据类型.更小的数据类型通常更快,因为他们占用更少的磁盘,内存和cpu缓存,并且处理时需要的cpu周期也更少 ...

  7. java处理数据库不支持的emoji表情符

    一般数据库的编码是utf8,utf8是不支持存储表情符的,当存入的微信昵称带有表情符时就会出现乱码情况,有两种解决方法: 1.mysql数据库升级到5.5版本以上,utf8改为utf8mb4,utf8 ...

  8. Android WebView 实现网页缩放

    需要对WebView设置的内容如下: //缩放开关,设置此属性,仅支持双击缩放,不支持触摸缩放 mWebView.getSettings().setSupportZoom(true); //设置是否可 ...

  9. 吴恩达机器学习笔记1-单变量线性回归(Linear Regression with One Variable)

    在监督学习中我们有一个数据集,这个数据集被称训练集.

  10. 【详记MySql问题大全集】一、安装MySql

    最近公司要从SqlServer转到MySql,期间在安装环境和数据迁移的过程中,遇到了一些不大不小问题,比如怎么重置密码.怎么设置大小写敏感等等. 这些问题都比较细比较杂,这边解决完可能过几天就忘了, ...