参考:https://www.cnblogs.com/damugua/p/15676070.html
Visual Studio 2019 C# Winform程序打包
![在这里插入图片描述](https://img-blog.csdnimg.cn/34a2f1c89cb1486bb20b9d85d1bb3796.png
引言
Visual Studio 2019 上打包 C# winform .net5.0程序
具体步骤
-
visual studio2019安装Installer project插件
打开Visual Studio 2019 ,选择菜单栏“扩展”,在“管理扩展页面”搜索“installer”,选择 Microsoft Visual Studio Installer Projects 下载安装。
-
安装完成后。右击解决方案,选择“添加”,“新建项目
- 在添加新项目框中,搜索“Setup Project”,添加启动项目,然后设置启动项目的名称和位置
4.右键Application Foluder->Add->文件
5.debug文件夹中的所有文件ctrl+a全选,点击“打开”,会自动添加到目录
6.注意:ctrl+a导入之后,debug文件夹中文件会全部导进来,但是文件夹不会粘贴进来,需要我们手动新建对应文件夹,挨个将文件导入,如下(项目里没有文件夹的跳过此步骤)
建完文件夹后需要将Debug里面每个文件夹的文件导入
在新建的文件夹右键→Add→文件
将文件夹里面的文件全选,然后“打开”。
其他文件以此类推,debug里面有几个文件夹,我们这里就需要新建几个文件夹,然后将debug文件挨个导入。
7.添加“项目输出”,选择软件的主输出页面文件
(a)你的项目是.NET5、6以及以上 的框架
将你的指向对象选为【发布项】
b)你的项目框架版本低
将你的指向对象选为【主输出】,如下图:
额外信息:
有些时候,我们需要独立的安装包,尤其是在针对工控机的项目时,运行环境根本无法确定。
所以,需要你先行对主项目进行publish配置,并记住你的这个publish名称。
然后根据下图的步骤,将这个publish的配置和【发布项】进行绑定。
- 先选中【发布项】
- 然后点击窗口右侧的【属性】
- 找到【publishProfilePath】
- 选择你刚刚配置的发布配置。
————————————————
版权声明:本文为CSDN博主「拆二代的平方」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/GJ_SO/article/details/131593324
8.为主输出创建快捷方式,右键这个主输出或者发布项->Create Shortcut to 创建一个快捷方式
复制进去之后,在右侧属性的icon选择前面已经添加进文件的icon图标。
注(icon图标必需放到Application Folder目录下指定的文件夹下面才能找到的)
9.添加卸载程序
C:\Windows\System32
右击Application Folder(应用程序文件夹) => Add => 文件 =>把msiexec.exe文件添加到Application Folder(应用程序文件夹)
添加后如下
右击msiexec.exe文件 => 点击Create Shortcut to msiexec.exe
点击Setup2(您建的项目)将ProductCode 属性的值复制
点击Shortcut to msiexec.exe => 将复制的ProductCode 属性值 粘贴在Arguments 属性中,然后在最前面加上 /X (注:/X后有一个空格)
最后将卸载拖动到User‘s Programs Menu(用户的程序菜单)
11.添加程序图标
右键点击“User’s Destop”中主输出文件的快捷方式,然后再其属性中找到,Icon属性,浏览选取你所要添加的图标(记住,应该先将图标放在打包的文件夹中,不然无法进行指定)
12.设置默认安装位置,不设置也可在安装时候选取
现在,默认情况下生成的是依赖框架的安装包。(可以通过右击Setup项目-属性-proprietary来指定所依赖的框架)
默认是未选择的,如果未设置,则需要事先在安装软件的目标电脑上安装好相应的框架,若进行配置:
(1)网上下载:桌面运行程序选择1,控制台程序选择2
(1)本地添加:桌面运行程序选择1,控制台程序选择2
如果报错:
ERROR: 要在“系统必备”对话框中启用“从与我的应用程序相同的位置下载系统必备组件”,必须将“Microsoft .NET Framework 4.7.2 (x86 和 x64)”项的文件“DotNetFX472\NDP472-KB4054530-x86-x64-AllOS-ENU.exe”下载到本地计算机。有关详细信息,请参见 http://go.microsoft.com/fwlink/?LinkId=616018。
ERROR: 要在“系统必备”对话框中启用“从与我的应用程序相同的位置下载系统必备组件”,必须将“Microsoft .NET Framework 4.7.2 (x86 和 x64)”项的文件“DotNetFX472\NDP472-KB4054530-x86-x64-AllOS-CHS.exe”下载到本地计算机。有关详细信息,请参见 http://go.microsoft.com/fwlink/?LinkId=616018。
从文档里看到和配置文件package.xml有关 。在C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\DotNetFX472\zh-Hans找到
找到链接http://go.microsoft.com/fwlink/?LinkId=863262&clcid=0x804进行下载
下载后放在C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\DotNetFX472
发现名称ndp472-kb4054531-web.exe与NDP472-KB4054530-x86-x64-AllOS-ENU.exe不同,对其重命名。把它重命名一下,改成NDP472-KB4054530-x86-x64-AllOS-ENU.exe文件一样的名字,放在DotNetFX472文件夹下。
再将ndp472-kb4054531-web.exe改名为NDP472-KB4054530-x86-x64-AllOS-CHS.exe然后再复制到zh-Hans文件夹中。最终要把改名后的两个文件放在zh-Hans文件夹以及DotNetFX472文件夹中。
ERROR: 要在“系统必备”对话框中启用“从与我的应用程序相同的位置下载系统必备组件”,必须将“.NET 桌面运行时 5.0.17 (x64)”项的文件“net5desktopruntime_x64\windowsdesktop-runtime-5.0.17-win-x64.exe”下载到本地计算机。有关详细信息,请参见 http://go.microsoft.com/fwlink/?LinkId=616018。
在https://download.visualstudio.microsoft.com/download/pr/3aa4e942-42cd-4bf5-afe7-fc23bd9c69c5/64da54c8864e473c19a7d3de15790418/windowsdesktop-runtime-5.0.17-win-x64.exe,下载后放在C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VisualStudio\BootstrapperPackages\net5desktopruntime_x64。
最后发布成功。
13、生成安装包及卸载程序
右键打包程序,点击“生成”
14、可以在Debug目录下看到已经生成的.msi文件和setup.exe文件,至此,文件安装包和卸载包生成完毕
二、测试
https://www.cnblogs.com/damugua/p/15676070.html
1.打开.msi安装包开始程序安装
2.安装完之后看到桌面自动生成快捷图标
进行到第七步时,用vs为winform程序打包就已经完成了,不过此时会在安装程序的Debug文件夹生成2个文件夹、1个.exe文件和1个.msi文件,而.exe安装时,又依赖于.msi文件。
这个时候给客户安装时拷贝过去的内容较多,也容易安装出错,如果把这些安装内容都打在一起,形成一个.exe 文件,就比较方便了,此时,可以用winrar的自解压格式压缩文件来实现,实现过程:
1.将要打在一起的文件及文件夹全部选中,右键 →“添加到压缩文件”,在打开的压缩面板的“常规”选项卡中勾选“创建自解压格式压缩文件”,此时会发现默认的压缩文件名编程了 .exe 后缀名了;压缩方式最好选择“存储”,这样打包后的程序会很快解压缩并运行。如图:
2.设置运行文件:再切换到“高级”选项卡,点击“自解压选项”,“常规”→设置→设置程序→提取后运行和提取前运行里写入setup.exe 如图:
3.设置安装程序文件的图标
切换到“文本和图标”,点击“从文件加载自解压文件图标”后的“浏览”按钮,选择安装程序文件的图标,如图:
4.切换到“模式”下,勾选“解包到临时文件夹”和“隐藏全部”,再切换到“更新”下,勾选“覆盖所有文件”,一路点击“确定”,大功告成!!
以上就是本人结合网上资料和其他博友文章,亲身实践成功的C# Winform程序打包成安装项目的心得,并且里面还加入了本人碰到的一些注意事项,特地写成文章分享给大家。