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

news2024/9/27 5:51:33

利用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.coloradmin.cn/o/1310129.html

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

相关文章

使用Pytorch从零开始构建StyleGAN

本文介绍的是当今最好的 GAN 之一,来自论文《A Style-Based Generator Architecture for Generative Adversarial Networks》的 StyleGAN ,我们将使用 PyTorch 对其进行干净、简单且可读的实现,并尝试尽可能接近原始论文。 如果您没有阅读过…

如何实现电脑文件夹自动备份?以下是图解教程

在当今迅猛发展的科技时代,电脑已经成为不可或缺的办公工具。随着使用时间的增加,存储在电脑中的文件数量也逐渐增多。然而,由于设备故障、手动误删等原因,文件的丢失问题成为一个不可忽视的风险。如果丢失的文件具有重要性&#…

文字转语音自动合成系统源码:让你的语音自动转成文字 附带完整的搭建教程

人工智能技术的不断发展,语音识别和自然语言处理技术已经逐渐成熟。文字转语音自动合成系统就是结合了这两项技术,将文字信息转化为语音输出,为用户提供更加便捷、高效的信息获取方式。这种系统在语音助手、智能客服、教育学习等领域有着广泛…

54 代码审计-TP5框架审计写法分析及代码追踪

目录 知识点1知识点2演示案例:demo代码段自写和规则写分析hsycms-TP框架-不安全写法-未过滤weipan21-TP框架-规则写法-内置过滤 知识点1 调试,访问,路由,配置,版本等 知识点2 自写写法:自己写代码,一步步…

PyQt6 简单介绍与安装

前文,参考文章: 参考文章一 参考文章二 PyQt6 简单介绍与安装 1、简单介绍2、PyQt6安装3、PyQt6版本查看4、PyQt6模块4.1 界面承载部分( 控件 )4.2 界面框架部分(布局)4.3 界面组件部分(其实也是Widget类&#xff0…

Json数据报文解析-Gson库-JsonObject类-JsonParse类-JsonArray类

一、前言 本文我们将介绍如何解析Json数据,主要通过Gson库中的相关类来实现。 二、详细步骤 首先,我们要拿到一个基础的Json数据,这里将以下面的Json数据作为示例: {"code":"1","msg":"ok&q…

电脑监控软件丨老板的“管理神器”?员工的“噩梦伊始”?

不得不承认,老板们都很喜欢用电脑监控软件来管控员工的工作情况。但是面对这个话题,他们却又有不一样的感受。 老板的“管理神器”?——首先来说老板 不得不说,老板确实很喜欢用域之盾软件--电脑管控功能https://www.yuzhidun.cn…

mfc140u.dll丢失的解决方法的详细介绍,六种解决mfc140u.dll丢失的方法

今天的这篇文章将向各位分享一个有关电脑出现关于丢失mfc140u.dll错误的弹窗问题,这是一个很常见的问题。无论你是一名大学生还是其他身份,都可能会遇到这个问题。下面我会对mfc140u.dll丢失的解决方法进行详细的介绍。 一.六种解决mfc140u.dll丢失的方法…

浪潮信息大突破:全面开源1026亿参数模型源2.0

近日,浪潮信息发布了一项重大成就,宣布全面开源其1026亿参数的基础大模型——源2.0。该举措在AI产业界引起了广泛关注,被视为推动生成式人工智能产业快速发展的关键一步。 源2.0模型概览 源2.0是一个多参数级别的大模型,提供了1…

‘BLEUUID‘ does not name a type错误怎么解决?

摘要:arduino环境下对esp32蓝牙编程时会遇到BLEUUID does not name a type错误,本文介绍解决方法。 硬件设备是安信可ESP32-S模组。 错误发生在代码最开始的地方,include了一个蓝牙设备头文件,然后定义了UUID,注意看&a…

Conda 使用教程大全来啦

什么是 Conda? Conda 是一款功能强大的软件包管理器和环境管理器,您可以在 Windows 的 Anaconda 提示符或 macOS 或 Linux 的终端窗口中使用命令行命令 Conda 可以快速安装、运行和更新软件包及相关依赖项。Conda 可以在本地计算机上创建、保存、加载和…

人工智能改变医疗保健:人工智能如何革命医学

人工智能(Artificial Intelligence, 简称AI)的快速发展正逐渐改变着我们的生活方式和社会结构。在医疗保健领域,AI的应用不仅提供了更准确、高效的诊断和治疗手段,还为医生和患者之间的交流提供了新的途径。本文将探讨人工智能如何…

计算机组成原理-ATT格式vsIntel格式

文章目录 AT&T格式 vs lntel格式 x86汇编语言是lntel格式,还有一种汇编语言格式是AT&T AT&T格式 vs lntel格式 lntel格式中取主存地址内容未指明长度默认为32位,对应下图中第四行右边的指令 百分号 美元符号 小括号 可用于计算机结构体数组…

有意思!40小时工作制来了,996再见

​在中国,加班文化已经深入人心。工资越高加班越多,“996”已成为一些行业标签,月薪30k以上的职场人中超过86%经常加班。所以今天我就来说一下这40小时工作制到底是从何而来,感兴趣的往下看看吧! 40小时工…

2023自动化测试框架的设计原则你都知道吗?快来看!

1.代码规范 测试框架随着业务推进,必然会涉及代码的二次开发,所以代码编写应符合通用规范,代码命名符合业界标准,并且代码层次清晰。特别在大型项目、多人协作型项目中,如果代码没有良好的规范,那么整个框架…

安装LLaMA-Factory微调chatglm3,修改自我认知

安装git clone https://github.com/hiyouga/LLaMA-Factory.git conda create -n llama_factory python3.10 conda activate llama_factory cd LLaMA-Factory pip install -r requirements.txt 之后运行 单卡训练, CUDA_VISIBLE_DEVICES0 python src/train_web.py…

MagicAnimate:Temporally consistent human image animation using diffusion model

1.Introduction 本文研究了任务形象动画人物,旨在根据特定的运动序列生成一个具有特定参考身份的视频。现有的人物图像动画的数据驱动方法可以基于所使用的生成主干模型分为两类,1.基于GAN,通常使用变形函数将参考图变形为目标姿态&#xff0…

Linux-----6、文件操作管理

# 文件操作管理 重要:Linux下,一切皆文件!!! 说在前面: 接下来所有的命令需要在一个载体上执行,这个载体就叫做终端。 终端上所有命令都需要一个东西翻译解析一下,计算机才能理解…

同义词替换工具在论文降重中的应用 神码ai

大家好,今天来聊聊同义词替换工具在论文降重中的应用,希望能给大家提供一点参考。 以下是针对论文重复率高的情况,提供一些修改建议和技巧: 标题:同义词替换工具在论文降重中的应用 一、引言 在撰写论文时&#xff0c…

LeetCode力扣每日一题(Java):67、二进制求和

一、题目 二、解题思路 1、我的思路(残缺版) 好家伙,又是一道我盯着屏幕看了半天还没思路的题目 我只有一部分残缺的思路,在这里先写下来吧 我们可以先创建一个空字符串(后文称新字符串),用…