当前位置: 首页 > news >正文

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

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.lryc.cn/news/393559.html

相关文章:

  • vue学习笔记(购物车小案例)
  • 昇思25天学习打卡营第19天 | RNN实现情感分类
  • 【VUE基础】VUE3第三节—核心语法之ref标签、props
  • 生物化学笔记:电阻抗基础+电化学阻抗谱EIS+电化学系统频率响应分析
  • SQL使用join查询方式找出没有分类的电影id以及名称
  • 对MsgPack与JSON进行序列化的效率比较
  • Unix\Linux 执行shell报错:“$‘\r‘: 未找到命令” 解决
  • 动态路由--RIP配置(思科cisco)
  • python - 函数 / 字典 / 集合
  • connect to github中personal access token生成token方法
  • Appium启动APP时报错Security exception: Permission Denial
  • ubuntu22 使用ufw防火墙
  • 初识STM32:开发方式及环境
  • 详解Amivest 流动性比率
  • pycharm小游戏制作
  • 昇思11天
  • AI绘画Stable Diffusion【图生图教程】:图片高清修复的三种方案详解,你一定能用上!(附资料)
  • 适用于Mac和Windows的最佳iPhone恢复软件
  • 64.ThreadLocal造成的内存泄漏
  • 深入刨析Redis存储技术设计艺术(二)
  • python读取写入txt文本文件
  • 日期选取限制日期范围antdesign vue
  • 【大模型】衡量巨兽:解读评估LLM性能的关键技术指标
  • 《优化接口设计的思路》系列:第2篇—小程序性能优化
  • prototype 和 __proto__的区别
  • 网络中未授权访问漏洞(Rsync,PhpInfo)
  • DataWhaleAI分子预测夏令营 学习笔记
  • lnmp php7 安装ssh2扩展
  • 数据库概念题总结
  • 提升用户体验之requestAnimationFrame实现前端动画