Visual studio 2023下使用 installer projects 打包C#程序并创建 CustomAction 类

news2024/9/28 1:22:30

Visual studio 2023下使用 installer projects 打包C#程序并创建 CustomAction 类

  • 1 安装Visual studio 20203,并安装插件
    • 1.1 下载并安装 Visual Studio
    • 1.2 步骤二:安装 installer projects 扩展插件
  • 2 创建安装项目
    • 2.1 创建Windows安装项目
    • 2.2 新建应用程序安装文件夹
    • 2.3 添加内容文件
    • 2.4 添加项目输出
    • 2.5 添加快捷方式
    • 2.6 设置系统必备属性
    • 2.7 设置安装程序的属性
    • 2.8 自定义安装界面
    • 2.9 自定义安装行为
  • 3 创建 CustomAction 类
    • 3.1 创建 c# 类库
    • 3.2 添加安装类
    • 3.3 重写基类Installer的函数
    • 3.4 增加项目输出
  • 4 创建Customs Action
    • 4.1 切换到TestSetup工程的Customs Actions视图
    • 4.2 在 Install 和 Commit 文件夹上单击右键,选择 添加自定义操作。
    • 4.3 选中已增加的TestCustomAction项目的主输出(对应TestCustomAction工程的.dll文件)。
    • 4.4 选中CustomAction文件,我们通过设置CustomActionData属性来获取 文本框(A) 中的参数。
    • 4.5 自定义安装类里获取输入值
    • 4.6 获取安装路径
  • 5 实现卸载
    • 5.1 添加 卸载 文件

1 安装Visual studio 20203,并安装插件

1.1 下载并安装 Visual Studio

从Visual Studio 官方网站的下载想安装版本的在线安装程序,运行后在线安装
官方网站:https://visualstudio.microsoft.com/zh-hans/downloads/
在这里插入图片描述

1.2 步骤二:安装 installer projects 扩展插件

  • 打开Visual Studio 2023,选择 “扩展->管理扩展(…)”,在出现的扩展管理器中输入"installer projects",找到微软的安装工程扩展插件,点击右边的"安装"按钮进行安装。
    在这里插入图片描述
    我这已经安装过了,下面图是修复安装
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

2 创建安装项目

2.1 创建Windows安装项目

  • 新建项目,打开想打包程序集的解决方案,选中解决方案->右键->添加->新建项目,选择Setup Projectt类型:
    在这里插入图片描述

  • 配置新项目
    输入项目名称,使用缺省的位置。
    在这里插入图片描述

  • 点击创建,完成后显示安装工程的文件系统
    在这里插入图片描述
    我们来了解下左边文件系统窗口的三个文件夹:

  • Application Folder:应用程序包含的文件设置,是安装程序在客户电脑上的安装根目录。你编写的程序生成的dll、exe,安装后可以存放在这个目录。

  • User’s Desktop:用户桌面快捷方式设置,用户桌面,一般放置快捷图标。

  • User’s Programs Menu:用户启动菜单的快捷方式设置,一般也是放快捷图标。

2.2 新建应用程序安装文件夹

如果有需要,我们可以为图片之类的文件在安装根目录下创建对应的目录来存放。注意:名称不能包含中文或者特殊字符
在这里插入图片描述
在这里插入图片描述

2.3 添加内容文件

将需要打包的文件(DLL,配置文件,图标文件等,所有文件都要添加)
在这里插入图片描述

2.4 添加项目输出

  • 添加项目输出的可执行目标文件,在 Application Folder 上点击右键,选择"Add->项目输入(P…)"

在这里插入图片描述

  • 在添加项目输出组对话框中选择对应的项目,按住Ctrl键选中"主输出"和"内容文件",点击"确定"完成。这样就把需要安装程序的编译后主要文件都添加进来了,当然也可以手动添加进来。
    在这里插入图片描述

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

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

相关文章

生物素修饰稀土掺杂无机荧光纳米颗粒

一、基本概述 生物素,也被称为维生素H或辅酶R,是B族维生素的一种,主要参与代谢脂肪和蛋白质,维持人体的正常生长、发育和健康。稀土掺杂无机荧光纳米颗粒则因其良好的光学性能,如窄发射带、高稳定性、良好的生物相容性…

Emacs编辑器:Codigger操作系统中的编程艺术

在Codigger分布式操作系统中,我们荣幸地引入了Emacs编辑器,这是一款全球公认的、功能强大且用途广泛的文本编辑器。它为广大的用户提供了前所未有的文本编辑和软件开发体验。通过与Codigger操作系统以及SIDE的无缝集成,用户在使用过程中可以感…

我的AI音乐梦:ChatGPT帮我做专辑

​🌈个人主页:前端青山 🔥系列专栏:AI篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来ChatGPT帮我做音乐专辑 嘿,朋友们! 想象一下,如果有个超级聪明的机器人能帮你写…

linux自动化内存监控与告警

文章目录 前言一、脚本实现1. shell脚本实现2. 脚本功能概览 二、设置定时执行1. 编辑cron任务表2. 设置定时任务 三、通知结果示例总结 前言 在当今数字化与网络化日益普及的时代,系统管理与维护成为了确保业务连续性和数据安全的关键环节。其中,监控系…

fastadmin框架后台列表固定第一行列表固定头部

在列表中,如果列表字段很多,并且每页数量很多,往下拉的时候就不好辨别数据是哪个字段的,对用户造成不好的浏览体验。 通过以下方法,可以实现将列表的第一行,也就是头部,固定在第一行显示,这样就能轻松辨别每个数据对应是哪个字段的,增加用户的使用体验。 打开项目的…

Java面试八股之为什么要使用Redis

为什么要使用Redis 1. 性能提升:高速缓存 要点:Redis作为内存数据库,数据存放在内存中,访问速度远超传统的关系型数据库(如MySQL)。在项目中,将热点数据(如经常被查询但不频繁变更…

AI大模型知识点大梳理_ai大模型的精度以下哪项描述的准确

AI大模型是什么 AI大模型是指具有巨大参数量的深度学习模型,通常**包含数十亿甚至数万亿个参数。**这些模型可以通过学习大量的数据来提高预测能力,从而在自然语言处理、计算机视觉、自主驾驶等领域取得重要突破。 AI大模型的定义具体可以根据参数规模…

汇凯金业:天然橡胶的用途和作用

天然橡胶是一种由橡胶树(Hevea brasiliensis)的乳汁加工而成的弹性体,具有弹性好、强度高、耐磨性好、耐寒性好、电绝缘性好、易于加工等优点,是世界上重要的战略物资和不可缺少的工业原料。 天然橡胶的用途十分广泛,主要应用于以下领域&…

ASUS NUC 14 Pro+:掌中宇宙,性能无界

在这个追求多样性的斜杠时代,ASUS NUC 14 Pro 顺势而生,将浩瀚宇宙般的强大性能浓缩于方寸之间,它不仅是一款设备,更是助您探索多重身份的斜杠伙伴! 浑然天成,简约而不简单 小巧的机身、简约的线条、精致的…

康谋分享 | 自动驾驶联合仿真——功能模型接口FMI(三)

在之前的两篇文章中(文末往期回顾中可查看),我们主要介绍了功能模型接口FMI的主要组成部分和一些使用场景,今天就以康谋自动驾驶仿真软件aiSim为例,来展示一下如何建立一个FMU并实现基于UDP和FMI联合仿真(c…

IT专业入门,高考假期预习指南(C++学习路线)

目录 IT专业入门,高考假期预习指南 一、V C的学习内容: 二、C学习书籍: 三、学习网站: 四、技术学习路线图: IT专业入门,高考假期预习指南 七月来临,各省高考分数已揭榜完成。而高考的完结并不意味着学习的结束,而…

buuctf 二维码

文件下载下来是一个png的文件 做misc永远的好习惯就是先运行,后010 先运行,这个运行肯定就是扫码 啥也没有 里面还有个ZIP文件(zip的发明人名字是PK) 放在kali上binwalk分离 CTF工具隐写分离神器Binwalk安装和详细使用方法_binwalk下载-CSDN博客 里面有个text,需要密码 我…

安卓腾讯桌球多功能助手直装版

安卓13自测效果,安卓12-安卓12以下一定可以的,QQ登陆的话扫码登陆,两个手机,一个扫码,一个游戏,一个手机的话,你可以下载个虚拟机,然后本机直装,用虚拟机QQ扫码即可 微信…

美国商超入驻Homedepot,会成为传统家织厂家跨境赛道吗?

近年来,随着全球化步伐的加快和电子商务的蓬勃发展,越来越多的企业开始寻求跨境拓展的机会。在这样的背景下,美国知名的家居用品零售商超——Homedepot成为了许多国内外家织厂家关注的焦点。那么,美国商超入驻Homedepot究竟如何呢…

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第56-agent自动发送短信

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第56-agent自动发送短信 使用dtns.network德塔世界(开源的智体世界引擎),策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引…

MySQL六:内置函数

文章目录 1. 日期函数2. 字符串函数3. 数学函数4. 其它函数 1. 日期函数 2. 字符串函数 函数名描述charset(str)返回字符串字符集concat(string2 [,…])连接字符串instr(string,substring)返回substring在string中出现的位置,没有返回0ucase(string2)转…

论文学习——基于双重变异的动态多目标优化进化算法,具有不可检测的变化

论文题目:A Dual Mutation Based Evolutionary Algorithm for Dynamic Multi-Objective Optimization with Undetectable Changes 基于双重变异的动态多目标优化进化算法,具有不可检测的变化(Yuanchao Liu, Lixin Tang, Fellow, IEEE, Jinli…

always块敏感列表的相关报错,

在综合的时候,报错如下 Synthesis synth_1 [Synth 8-91] ambiguous clock in event control ["E:/FPGA/FPGA_project/handwrite_fft/handwrite_fft.srcs/sources_1/new/reg_s2p.v":140] 猜测报错原因(暂时没有时间寻找原因,后续在…

Windows 系统中常用的 CMD 命令及示例

CMD 命令是在 Windows 操作系统的命令提示符中输入的指令,用于执行各种系统管理、文件操作、网络配置等任务。 1、ipconfig 描述:显示windows网络配置信息的命令行工具。 它可以提供以下重要的网络配置详情: IP 地址:包括 IPv4 …

一个项目学习Vue3---事件处理

学习下面代码&#xff0c;了解Vue3的事件处理 <!--条件和列表渲染--> <template><el-button v-on:click"countAdd" type"primary">count{{ count }}</el-button><el-button click"countAdd" type"primary"…