Visual Studio 2022 WinForm/Wpf打包安装程序
Visual Studio 2022 WinForm/Wpf打包安装程序
1.安装扩展程序
方法1.手动下载安装包:
Microsoft Visual Studio Installer Projects 2022
方法2.Visual Studio中安装
菜单栏中选中【扩展】-【管理扩展】-【联机】中搜索Microsoft Visual Studio Installer并安装

2.创建并设置用于打包安装程序的项目
2.1 新建Setup Project项目
在当前解决方案下添加-新建项目-Setup Project

2.2 添加需要打包的应用程序文件
项目添加成功之后,将需要打包的项目生成后的bin目录下的所有文件和文件夹复制-粘贴到【Application Folder】目录中

2.3 添加项目主程序
右击【Application Folder】-【Add】-【项目输出】,选中需要打包的项目,点击主输出,确定

2.3 添加主程序的桌面和任务栏快捷方式
- 右击刚刚添加的主输出 from XXX(Active),Create Shortcut to 主输出 from XXX(Active)

- 然后重命名Shortcut to 主输出 from XXX(Active),修改为需要显示的快捷方式的名称,然后拖动到User’s Destop目录下


- 右击【User’s Programs Menu】-【Add】-【Folder】,这里添加的文件夹会显示在应用程序菜单中
按照刚刚的步骤再创建一个快捷方式,拖动到此文件夹中

2.5 添加卸载程序
右击【Application Folder】-【Add】-【文件】,找到C://Windows/System32下的msiexec.exe,重命名为UnInstall


2.6 添加卸载程序快捷方式
- 右击已经重命名为UnInstall.exe文件,Create Shortcut to UnInstall.exe

- 单击刚刚新建的Setup Project项目,复制ProductCode中的值

- 选装刚刚Shortcut to UnInstall.exe文件,右击【属性窗口】,修改Arguments属性的值为
/X空格 刚刚复制的ProductCode中的值

- 重命名Shortcut to UnInstall.exe,修改为需要显示在应用程序菜单中的名称,然后拖动到【User’s Programs Menu】【Demo】目录下

2.7 打包安装程序
选中Setup Project项目右击【重新生成】,等打包成功以后即可在该项目的目录下找到程序的安装包
3.设置管理员权限(非必须)
3.1 启用ClickOnce安全设置
选中项目右击【属性】-【安全性】,勾选“启用ClickOnce安全设置”

3.2 修改app.manifest文件
启用ClickOnce安全设置后项目中的Properties目录中会多出一个app.manifest文件,选中并打开,
找到
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
更改为
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

3.3 关闭ClickOnce安全设置
将“启用ClickOnce安全设置”前面的勾去掉后再编译运行。 不然程序会报错无法运行。
智能推荐
seaborn调用load_dataset函数时出现URLError
seaborn调用load_dataset函数时出现URLError: <urlopen error [Errno 11004] getaddrinfo failed> 在使用seaborn调用load_detaset函数时一直出现错误 出现 URLError: <urlopen error [Errno 11004] getaddrinfo failed> 解决办法。 查...
Sa-Token 一个轻量级Java权限认证框架
文章目录 Sa-Token 简介 基础使用 框架集成 添加Sa-Token依赖 配置Sa-Token 配置项解读 sa-token cookie 单点登录 OAuth 2.0 登录认证 认证流程 登录与注销 其他操作语句 权限认证 获取当前账户的权限码集合 权限认证 角色认证 全局异常捕获 权限通配符 踢人下线 强制注销 踢人下线 账号封禁 注解鉴权 1.注册注解拦截器 2.使用注解鉴权 路由鉴权...
平时瞎折腾之Docker
平时瞎折腾之Docker 由于平时在学校学习和使用的数据库大多数都是使用的mysql,但是进入工作中时,由于不同的项目会使用到像Oracle,Sql Server这样的数据库操作。虽说sql的基础语法都差不多,但具体使用起来还是有很大的差异。于是就想着装个Oracle数据库学习一下,但是由于我之前把电脑换成了Mac,这就很让人头疼。之前的解决方法是使用parallels安装windows虚拟机,然...
构建虚拟Web主机(基于域名、端口和IP)
文章目录 虚拟主机简介 基于域名的虚拟主机 基于端口的虚拟主机 基于IP的虚拟主机 虚拟主机简介 ●虚拟Web主机 在同一台服务器中运行多个Web站点,其中每一个站点并不独立占用一台真正的计算机 ●httpd支持的虚拟主机类型 基于域名的虚拟主机 基于IP地址的虚拟主机 基于端口的虚拟主机 (基于域名和端口的生产环境用的多) 基于域名的虚拟主机 示例:构建2个虚拟Web站点 www.test.co...
使用C#操作EXCEL文件
文章目录 1.在项目中引用Microsoft Excel 12.0 Object Lib这个COM组件,如图所示。 2. 在命名空间中添加引用,完整的引用如图所示。 3.打开、关闭Excel文件 4. 获取工作表 5. 删除工作表 6. 对EXCEl工作表的行列进行操作 7. 对EXCEL文档中的单元格进行操作 完整代码 1.在项目中引用Microsoft Excel 12.0 Object Li...
猜你喜欢
Python学习-Python编程环境搭建
ps:以下内容纯属上课学习的笔记整理,不做商业用途,无侵犯版权的想法。 1 认识Python 1.1 Python的介绍 官方介绍:Python 是一款易于学习且功能强大的编程语言。 它具有高效率的数据结构,能够简单又有效地实现面向对象编程。Python 简洁的语法与动态输入之特性,加之其解释性语言的本质,使得它成为一种在多种领域与绝大多数平台都能进行脚本编写与应用快速开发工作的理想语言。 名称的...
VTK之类的实现
vtkObject类分析 vtkObjectBase主要实现引用计数,因此vtkObject及其子类也都继承了该特性。vtkObject中实现了在VTK中非常广泛使用的观察者/命令机制,能够方便地处理消息响应,例如处理鼠标消息、键盘消息、进度消息等,VTK中Widget中大量使用了该机制进行消息处理。vtkObject中定义了一个vtkSubjectHelper对象来管理观察者。vtkSubj...
Ubuntu19.10使用Qemu安装树莓派
文章目录 Ubuntu19.10使用Qemu安装树莓派 安装 安装qemu 安装树莓派 图形化界面 下载 参考文献 Ubuntu19.10使用Qemu安装树莓派 之前一直是在Windows下鼓捣虚拟机,这次试试qemu 安装 安装qemu 安装树莓派 在github上找到相应版本的内核和设备树文件。 先创建一个项目目录,把镜像文件、设备树文件,和内核文件都放进去 然后fdisk -l 2020-0...
攻防世界 int_overflow write_up
首先看一下文件信息: 32位 可以栈溢出,用ida32打开看main函数,在login里面发现输入点: 但是输入空间被限制,暂无注入点,再看一下check_passwd: 判断流程是判断passwd长度大于3小于8,然后把s赋值给dest。 首先发现一个问题,v3是unsigned _int8,8位的无符号整型,范围是0~255,可以整数溢出,就是256赋值给v3时,v3=0.也就是说...
MATLAB Learning Days---------子图
子图 子图是要在一个图像上显示多余一个图像,绘制子图命令使用subplot(m,n,p)命令,这里的m,n告诉MATLAB产生的的子图有m行n列,p告诉MATLAB我们所要贴上去的某个已经绘制的图形窗口。 第一个例子我们并排显示这两个函数: 在这两种情况下,我们都设x在0~5之间,y在-1~1之间,首先我们定义函数的定义域,函数然后调用subplot 通过subplot我们传递(1,2,1),告诉...
