利用Microsoft Visual Studio Installer Projects打包安装包

利用Microsoft Visual Studio Installer Projects打包安装包

  • 具体步骤
    • 步骤1:安装扩展
    • 步骤2:创建 Setup 项目
    • 步骤3:设置属性
    • 步骤4:添加输出
    • 步骤5:添加文件
    • 步骤6:添加桌面快捷方式
    • 步骤7:添加菜单快捷方式
    • 步骤8:添加卸载程序快捷方式
    • 步骤9:生成安装包

此篇博客将说明如何利用Visual Studio上的Microsoft Visual Studio Installer Projects扩展打包安装包。

具体步骤

步骤1:安装扩展

在Visual Studio中点击 扩展 -> 管理扩展 -> 联机 -> 搜索Microsoft Visual Studio Installer Projects -> 下载,最终安装好如图
在这里插入图片描述

步骤2:创建 Setup 项目

右键点击解决方案,添加Setup Project新项目,如图
在这里插入图片描述
在这里插入图片描述

步骤3:设置属性

成功创建好如下图,会生成三个路径:Application Folder用于包含目标项目编译后的文件,如dll、脚本等,便于在打包时压缩文件、安装时解压文件;User’s Desktop 主要是指用户桌面,可以在此处添加桌面快捷方式;User’s Programs Menu 主要是指用户菜单,可以在此处添加菜单快捷方式。
在这里插入图片描述
之后, 可根据软件需求,在 解决方案资源管理器 处设置项目对应属性,如图
在这里插入图片描述

步骤4:添加输出

右键点击Application Folder -> Add -> 项目输出,如图
在这里插入图片描述
在这里插入图片描述

步骤5:添加文件

由于Application Folder 添加项目输出时,只会识别dll,如下图,因此若未将所有文件载入时,需手动添加。在下图中,其并未将目标WPF项目MRISoftwareDelpoyPlatform中的Scripts文件夹加载进Application Folder。
在这里插入图片描述
针对上述问题,可右键点击Application Folder -> Add -> Folder,修改名称为Scripts,之后右键点击该文件夹 -> Add -> 文件,在弹出窗口下选择合适路径,文件添加成功后,如下图
在这里插入图片描述
最终文件添加成功之后,整个Application Folder 下的文件如下图
在这里插入图片描述

步骤6:添加桌面快捷方式

右键点击主输出 -> Create Shortcut… ,然后根据需求修改快捷方式名称,添加成功后如图所示,此处快捷方式名称为MRISoftwareDelpoyPlatform
在这里插入图片描述
之后将快捷方式剪切复制进 User’s Desktop 中,便可在安装后自动创建桌面快捷方式。如图
在这里插入图片描述
现对快捷方式添加图标,首先在Application Folder中添加ico文件,然后按照下图中顺序最后点击ok即可
在这里插入图片描述

步骤7:添加菜单快捷方式

为了便于显示菜单快捷方式与卸载快捷方式,需要在 User‘s Program 下添加文件夹,这步操作已在步骤6中实现。先添加菜单快捷方式,并为其添加图标,步骤与桌面快捷方式类似,添加成功后如图
在这里插入图片描述

步骤8:添加卸载程序快捷方式

此步骤非必须,可根据需求进行添加。若需添加Uninstall.exe,则 右击 Application Folder ->Add -> 文件,找到 C:/Windows/System32下的msiexec.exe,重命名为UnInstall,成功之后如图
在这里插入图片描述
为了实现Uninstall.exe对目标安装软件进行卸载,需做如下处理:点击项目(此处为MRIDPSetup) -> 复制属性页面中ProductCode的值,此数据为该项目独有的GUID号 -> 右键点击Uninstall.exe -> Create Shortcut … -> 修改快捷方式的名称 -> 将ProductCode按照 “/X {xxxxxx-Your-Product-GUID-xxxx-xxx-xxxx}” 格式填充至快捷方式属性界面的 Arguments -> 将快捷方式剪切粘贴至 User‘s Program Menu/MRISoftwareDeployPlatform中即可,成功后如图
在这里插入图片描述

步骤9:生成安装包

右键点击项目 -> 生成, 最后生成的安装包如图,其中setup.exe 是一个引导程序,负责启动安装过程并调用实际的安装文件 .msi 来完成安装,也可直接双击.msi文件进行安装。若有其他需求,如升级时无需卸载旧包直接覆盖升级,可点击 博客 进行查阅。
在这里插入图片描述

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

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

相关文章

【Table/SQL Api】Flink Table/SQL Api表转流读取MySQL

引入依赖 jdbc依赖 flink-connector-jdbc mysql-jdbc-driver 操作mysql数据库 <!-- Flink-Connector-Jdbc --><dependency><groupId>org.apache.flink</groupId><artifactId>flink-connector-jdbc_${scala.binary.version}</artifactId>…

Ubuntu上安装 Git

在 Ubuntu 上安装 Git 可以通过包管理器 apt 进行。以下是在 Ubuntu 上安装 Git 的步骤&#xff1a; 打开终端。你可以按 Ctrl Alt T 组合键来打开终端。 运行以下命令以确保你的系统的软件包列表是最新的&#xff1a; sudo apt update 安装 Git&#xff1a; sudo apt inst…

RT-DERT改进策略:AKConv即插即用,轻松涨点

摘要 提出了一种算法&#xff0c;用于生成任意尺寸卷积核的初始采样坐标。与常规卷积核相比&#xff0c;提出的AKConv实现了不规则卷积核的函数来提取特征&#xff0c;为各种变化目标提供具有任意采样形状和尺寸的卷积核&#xff0c;弥补了常规卷积的不足。在COCO2017和VisDro…

Anaconda文件目录(打开默认路径)更改

Anaconda 文件默认目录更改 每次打开 Anaconda 都在C盘怎么办&#xff0c;如何改为D盘或是其他盘符位置&#xff1f; 可以进行下述操作。 1. 单次修改路径 单次修改路径&#xff1a;在 exe 文件(Anaconda Prompt (Anaconda_py))中写入下面代码&#xff1a; jupyter notebook …

STM32 标准外设SPL库、硬件抽象层HAL库、低层LL库区别?

1、STM32 之一 HAL库、标准外设库、LL库_ZCShou的博客-CSDN博客_ll库&#xff08;仔细阅读&#xff09; 2、STM32标准外设库、 HAL库、LL库 - King先生 - 博客园 3、STM32 之 HAL库_戈 扬的博客&#xff08;仔细阅读&#xff09; 4、STM32 LL 为什么比 HAL 高效&#xff1…

MAC下加载动态库

MAC引用动态库时报错&#xff1a; 查看一个可执行文件或者动态库引用的第三方库路径&#xff1a;otool -L xxx.dylib 第一行是动态库的安装名称&#xff08;INSTALL Name&#xff09;。当另一个客户端链接到这个 dylib 时&#xff0c;dylib 的安装 ID 会被复制到客户端中作为…

selenium库的使用

来都来了给我点个赞收藏一下再走呗&#x1f339;&#x1f339;&#x1f339;&#x1f339;&#x1f339; 目录 一、下载需要用到的python库selenium 二、selenium的基本使用 1.在python代码引入库 2.打开浏览器 3.元素定位 1&#xff09;通过id定位 2&#xff09;通过标…

一文掌握Ascend C孪生调试

1 What&#xff0c;什么是孪生调试 Ascend C提供孪生调试方法&#xff0c;即CPU域模拟NPU域的行为&#xff0c;相同的算子代码可以在CPU域调试精度&#xff0c;NPU域调试性能。孪生调试的整体方案如下&#xff1a;开发者通过调用Ascend C类库编写Ascend C算子kernel侧源码&am…

云计算大屏,可视化云计算分析平台(云实时数据大屏PSD源文件)

大屏组件可以让UI设计师的工作更加便捷&#xff0c;使其更高效快速的完成设计任务。现分享可视化云分析系统、可视化云计算分析平台、云实时数据大屏的大屏Photoshop源文件&#xff0c;开箱即用&#xff01; 若需 更多行业 相关的大屏&#xff0c;请移步小7的另一篇文章&#…

mapstruct个人学习记录

mapstruct核心技术学习 简介入门案例maven依赖 IDEA插件单一对象转换测试结果 mapping属性Spring注入的方式测试 集合的映射set类型的映射测试map类型的映射测试 MapMappingkeyDateFormatvalueDateFormat 枚举映射基础入门 简介 在工作中&#xff0c;我们经常要进行各种对象之…

【rabbitMQ】rabbitMQ用户,虚拟机地址(添加,修改,删除操作)

rabbitMQ的下载&#xff0c;安装和配置 https://blog.csdn.net/m0_67930426/article/details/134892759?spm1001.2014.3001.5502 rabbitMQ控制台模拟收发消息 https://blog.csdn.net/m0_67930426/article/details/134904365?spm1001.2014.3001.5502 目录 用户 添加用户…

MyBatis 四大核心组件之 StatementHandler 源码解析

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 欢迎点赞…

CPU设计——Triumphcore——MP_work版本

该版本用作系统寄存器的实现&#xff0c;M/S/U状态的实现与切换&#xff0c;以及load/store的虚实地址转换 设计指标 2023.12.8 2023.12.9 不实现mideleg和medeleg&#xff0c;因此一旦出现异常&#xff0c;直接切换至M态&#xff0c; 调试记录 到存储区中取PTE要额外至少…

airserver mac 7.27官方破解版2024最新安装激活图文教程

airserver mac 7.27官方破解版是一款好用的airplay投屏工具&#xff0c;可以轻松将ios荧幕镜像&#xff08;airplay&#xff09;至mac上&#xff0c;在mac平台上实现视频、音频、幻灯片等文件资源的接收及投放演示操作&#xff0c;解决iphone或ipad的屏幕录像问题&#xff0c;满…

Linux C/C++ 从内存转储中恢复64位ELF可执行文件

ELF&#xff08;Executable and Linking Format&#xff09;是一种对象文件的格式&#xff0c;它主要用于定义ELF&#xff08;Executable and Linking Format&#xff09;是一种对象文件的格式&#xff0c;它主要用于定义不同类型的对象文件中的内容以及它们的存储方式。一个EL…

作业调度算法(含详细计算过程)和进程调度算法浅析

一.作业调度 作业调度算法需要知道以下公式 周转时间完成时间 - 到达时间 带权周转时间周转时间/运行时间 注&#xff1a;带权周转时间越大&#xff0c;作业&#xff08;或进程&#xff09;越短&#xff1b;带权周转时间越小&#xff0c;作业&#xff08;或进程&#xff09;越…

Redis生产实战-Redis集群故障探测以及降级方案设计

Redis 集群故障探测 在生产环境中&#xff0c;如果 Redis 集群崩溃了&#xff0c;那么会导致大量的请求打到数据库中&#xff0c;会导致整个系统都崩溃&#xff0c;所以系统需要可以识别缓存故障&#xff0c;限流保护数据库&#xff0c;并且启动接口的降级机制 降级方案设计 …

超过 50% 的内部攻击使用特权提升漏洞

特权提升漏洞是企业内部人员在网络上进行未经授权的活动时最常见的漏洞&#xff0c;无论是出于恶意目的还是以危险的方式下载有风险的工具。 Crowdstrike 根据 2021 年 1 月至 2023 年 4 月期间收集的数据发布的一份报告显示&#xff0c;内部威胁正在上升&#xff0c;而利用权…

基于SSM的剧本杀预约系统的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

【第三届】:“玄铁杯”RISC-V应用创新大赛(基于yolov5和OpenCv算法 — 智能警戒哨兵)

文章目录 前言 一、智能警戒哨兵是什么&#xff1f; 二、方案流程图 三、硬件方案 四、软件方案 五、演示视频链接 总结 前言 最近参加了第三届“玄铁杯”RISC-V应用创新大赛&#xff0c;我的创意题目是基于 yolov5和OpenCv算法 — 智能警戒哨兵 先介绍一下比赛&#xf…