C# VS2017 WinForm 打包和升级

 C# WinFrom打包不怎么常用,但一年总有那么一两次,每次都记不全,为了方便自己回看,于是有了本篇文章。

本例使用《C#工具类LogHelper》的解决方案作为例子,实现WinForm打包,以及升级的功能,本文使用VisualStudio2017工具。

一、在解决方案--添加--新建项目,选择其它项目类型--Visual Studio Installer,选择Setup Project。

 

 点击确定后如下图所示,会安装一个Setup1的安装程序配置项目。

如果没有找到“Visual Studio Installer”,可到 VS 工具栏 > 工具 > 扩展和更新 > 联机 > 搜索 Microsoft Visual Studio Installer Projects 并安装。安装完成后需要重启 VS。

 

二、设置软件图标。

https://www.easyicon.net/随便搜索一个ico后缀的图标,并放到项目的Icon文件夹下。

 为主窗体添加图标:

 

三、设置导入内容

1、点击Application Folder ->Add -> 文件。

2、选择项目bin Debug文件夹,Ctrl+A 全选所有内容,之后点击"打开"。

 

3、如果有文件夹,需在 Application Folder ->Add-> Folder中添加。本项目有Log文件夹和Icon,所以在 Application Folder 需要添加Log文件夹和Icon文件夹,如下图所示。

 添加Log文件夹和Icon文件夹后:

 

 

 四、设置输出内容

1、选择在Application Folder-->Add-> 项目输出 。

  

2、点击确定。

 

 3、在"主输出from xxx",右键--Create Shortcut to 主输出 from xxx

 

4、将"Shortcut to 主输出 from xxx"拖动到 User's Desktop。

 

 

将 User's Desktop的"Shortcut to 主输出 from xxx"自定义名称,此处我改为WinFormDemo,并设置图标。

 

五、设置卸载项

1、点击Application Folder ->Add -> 文件,选择“C:\Windows\System32” 中的 msiexec.exe。

2、将msiexec.exe 创建一个快捷方式,并改名为 Uninstall 。

 

 

  3、创建好Uninstall 快捷方式后,点击SetUp的属性,复制ProductCode中的内容。

 

4、 将复制好的ProductCode 内容,粘贴到创建好的Uninstall的属性Arguments中,并在ProductCode 前加入“/X”

 

 5、总的来讲就是将“主输出from xxx”和msiexece.exe创建快捷方式,并分别重命名后,拖动到 User's Programs Menu。这个的作用就是在用户程序菜单显示程序的进入快捷方式和卸载快捷方式。

 

创建文件夹WinFormDemo,并将两个Shortcut移到文件夹里,如下图所示。

六、设置版本覆盖。

 

 七、生成

 在Setup1右键,生成。

生成后,在Setup1的项目的Debug下就有安装文件的exe了。

 

 八、效果

安装后效果如下:

 

九、升级

1、在AssemblyInfo.cs设置新版本号。

 2、将Setup1属性里的Version同步更改,会提示会改会ProductCode,点击“是”即可。

 注:这里Version的版本号只有3位,如果设为1.0.0.1,则在发布时显示此错误“ERROR: Invalid product version '1.0.0.1'. Must be of format '##.##.####'”,若有知晓的朋友请告知。

 3、修改所有Unistall的Arguments为:/X {新的ProdcutCode}

  

 4、生新发布Setup后,安装exe,最后效果如下:

 十、下载

https://files.cnblogs.com/files/suterfo/WinFormDemo.rar

参考文章:

1、https://blog.csdn.net/u014234260/article/details/80067254

2、https://blog.csdn.net/lxrj2008/article/details/80611164

3、https://blog.csdn.net/m0_37862405/article/details/80785294

4、https://www.cnblogs.com/duanweishi/p/11114332.html

猜你喜欢

转载自www.cnblogs.com/suterfo/p/12310699.html