C# Winform 打安装包

news/2024/11/14 12:48:26/文章来源:https://www.cnblogs.com/zeussbook/p/18400801

  开发好一款Winform程序,往往都是直接拉Debug文件里的内容,直接运行。这样直接给客户,或者打个简易的压缩包。视觉上觉得很low,客户也觉得价不配位。因此这个5毛钱的特效还是要加上,毕竟几十万的项目款都付了。提升一下软件的B格,让客户觉得物有所值。

一、下载安装扩展程序  Microsoft Visual Studio Installer Projects

  点击: 扩展 >> 管理扩展 >> 联机 >>输入:Microsoft Visual Studio Installer Projects >> 搜索 选择第一个 下载

  下载完成后,点击右下角关闭。关闭visual studio 软件后才会弹出安装界面。如果没有弹出,可以右键  >> 任务管理器,找到visual studio 的进程杀死即可。然后弹出安装界面 install ,点击 Modify 等它安装完成。

  二、创建 打包项目

  右键 解决方案 >> 添加 >> 新建项目 >> 输入:setup >> 选择 Setup Project  >> 下一步

   输入项目名称:{你的项目名称},项目位置:{选择你的项目存放位置},我这里图方便,直接放在桌面。点击创建

 

三、配置打包内容

1.添加运行程序

  右键 Application Folder >> Add >> 文件 >> 选择你项目的Debug文件夹 >> 选择全部文件(Ctrl+A) >> 打开

Debug文件夹 不知道在哪里的,可以右键 你要打包的项目 >> 在资源管理器中打开文件夹 >> 找到第一个文件夹bin >> 点击 Debug 然后复制整个文件路径即可。

 2.添加卸载程序

  2.1 右键 Application Folder >> Add >> 文件 >> 数据路径:C:\Windows\System32 >> 输入文件名:msiexec.exe >> 打开

   2.2 找到添加进来的 msiexec.exe 右键,选择 Create Shortcut to msiexec.exe

  2.3 右键我们的 setup项目,在属性中找到并复制 ProductCode 的值。然后找到刚才创建的 Shortcut to msiexec.exe,左键点击在属性中找到 Arguments。把刚才复制的值粘贴上来,并在前面加上 /X 空格。如果ProductCode 的值是{123},那么Arguments的值就是 /X {123}

   2.4 将 Shortcut to msiexec.exe 拖动到 User‘s Programs Menu 中

 

 

3.添加运行环境

  3.1 右键 Application Folder >> Add >> 项目输出 >> 选择项目 >> 主输出 >> 确定

   3.2 找到刚才生成的 “主输出 from...”,右键 创建快捷方式  

   3.3 把创建成功的快捷方式 “Shortcut to 主输出...” 拖动到 User‘s Desktop 中

   3.4 右键我们的 setup项目,点击 属性。点击 Prerequisites,选择安装系统必备组件,这里一般默认就行,主要看是否遗漏。然后 确定 确定 即可。

 4. 配置icon图标

  4.1 右键 Application Folder >> Add >> 文件,将你的icon文件导入

   4.2 点击 User’s Desktop,点击 "Shortcut to 主输出..."。在属性中找到 Icon,找到Browse, 选择你传入icon图片的文件夹 Application Folder 找到icon图片,确定。

 

5.修改名称

分别找到桌面User’s Desktop 的 快捷方式,修改 Name,我们不要使用系统的。卸载快捷方式的名称也是一样修改一下。

 

4.生成安装包

  右键我们的 setup项目,点击生成。biubiubiu 数3下就生成成功啦。

 

5. 验证安装包

  所谓小心使得万年船,自己测试没有问题再给客户使用这是最基本的礼仪。在输出环境,我们找到生成的安装包。

   由于是开发环境,我们这里直接安装 电池管理应用程序。

   运行程序,测试正常

   卸载测试,点击卸载。安装目录清空...

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/793175.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解压zip文件或者安装软件出现 无法成功完成操作 解决方案

近期, 有一些朋友反馈在解压zip压缩包, 或者在安装软件的过程中出现了下面的错误提示: "无法成功完成操作, 因为文件包含病毒或者潜在垃圾文件" "Operation did not complete successfully because the file contains a virus or potentially unwanted software…

Windows10添加鼠标右键打开

1打开注册表2.进入目录计算机\HKEY_CLASSES_ROOT\Directory\Background\shell\,新建项,2.1继续新建子项,重命名为command2.2修改子项中的默认,添加路径结果:ps: 可以重命名。在第一个新建项中新建“字符串值”,重命名为“ICON”可以设置图标。效果图:

2024 天池云原生编程挑战赛决赛名单公布,9 月 20 日开启终极答辩

2024 天池云原生编程挑战赛决赛名单公布,9 月 20 日开启终极答辩历时 4 个月,2024 天池云原生编程挑战赛决赛名单公布! 本届大赛规模创新高,参赛战队达 20000+ 支, 广覆盖国内外优秀高校和杰出企业!吸引了来自北京大学、清华大学等 176 所国内外优秀高校,以及美团、米哈…

Linux救援模式

故障背景:误删除或修改/etc/passwd导致无法远程登录. 禁止root远程登录,没有添加普通用户,无法远程登录. root密码忘记,无法远程登录. linux无法启动1.解决方案 root密码,恢复有备份的系统文件,都要重启系统,才能进入救援模式解决方案应用场景系统自带的救援模式系统还可以正常…

API 网关 OpenID Connect 实战:单点登录(SSO)如此简单

本文对 Higress 中开源的 OIDC Wasm 插件进行了介绍,现在 Higress 项目中 Wasm 插件支持使用 Go、C++、Rust、AssemblyScript 等语言编写,后续会支持更多的编程语言,有着更低的开发门槛,同时 Wasm 插件运行在隔离的沙箱环境中,具有更高的安全性,而 Wasm 本身作为一种高性…

在全连接层中进行批量数据并行执行

在全连接层中进行批量数据并行执行 在全连接网络中,为了增加并发性并减少权重的负载,可以同时处理一批图像(来自多个视频通道),如图11-31所示。图11-31 增加并发性并减少权重的负载,可以同时处理一批图像 11.2.6 特征缓存 在流处理中,对输入和结果使用双缓冲区。对于下一…

【整理】【Jinja2 模板】基础

Jinja2是基于python书写的模板引擎。 jinja2 必知必会 1、jinja2文件以.j2为后缀,也可以不写后缀。 2、jinja2中存在 三种定界符 注释:{{# #}}变量引用:{{ var }}逻辑表达:{% %}3、jinja2 逻辑控制 条件表达: {% if %}......{% endif %}案例:循环控制:案例:注意:

CatiaV6 3DE软件许可优化解决方案

CatiaV6 3DE软件介绍 3DEXPERIENCE 是一个业务和创新平台可助力组织机构实时、全面地了解其业务活动和生态系统。它在统一的协同环境中将人员、构思、数据和解决方案连接在一起,从初创企业到大型企业,使各类企业都能够以全新的方式进行创新、生产和贸易。您可以将该平台用作真…

CSDN免登录复制

一、 1.打开开发人员工具 2.找到对应元素 二、 1.打开开发人员工具,进入控制台2.输入doucument.designMode=on结果图:3.选中,打印输出PDF效果图:ps: 效果图:

如何快速求一个序列的gcd和lcm

背景: 教授在打某道关于序列gcd与lcm的题,但是看不懂题解,于是决定打表找规律;然而自己又懒得算数,于是写了个程序。 使用说明: 输入格式:n str a1 a2 ... an,\(n\) 为序列长度;str为操作种类,只有GCD和LCM;\(a\) 为序列,其中所有元素都必须是自然数。 如果输入不合…

WPF check key and modified key

private void Window_KeyDown(object sender, KeyEventArgs e) {if (e.Key == Key.A && e.KeyboardDevice.Modifiers == ModifierKeys.Control){MessageBox.Show($"You entered Key:{Key.A} and modifier:{ModifierKeys.Control}");} }

数业智能心大陆告诉你如何培养孩子的批判性思维?

现今的教育体系自小学起便强调培养孩子的批判性思维,这种能力被视为在复杂世界中生存和发展的关键。在当今信息爆炸的时代,它能让我们在海量信息中辨别真伪、深入思考并做出明智决策。如今,如数业智能心大陆产出的AI 心理咨询平台的出现为培养孩子批判性思维提供了新可能,其…