用Microsoft Visual Studio Installer Projects 2022打包程序,同时安装VC++的运行库等

作者:CE贝多芬日期:2025/11/13

目录

一、安装插件

二、创建打包程序

在解决方案中新建打包项目

三、配置打包属性内容等

文件系统的各个文件夹

将输出程序打包进Application Folder

创建桌面快捷方式

创建卸载程序

给快捷方式创建图标

设置打包时的属性以及安装语言,安装位置等信息

四、打包

五、附录

六、附录二


一、安装插件

说明:

Microsoft Visual Studio Installer Projects 2022 是微软官方提供的 Visual Studio 扩展,用于创建 Windows 安装程序(.msi 文件)。

二、创建打包程序

在解决方案中新建打包项目

新建完成后出现以下页面

如果没有,右键项目,点击View,点击文件系统即可。同时可以选择其他类型的页面。

三、配置打包属性内容等

文件系统的各个文件夹

Application Folder项目输出位置
User's Desktop桌面快捷方式
User's Programs Menuwindows应用程序启动菜单中

将输出程序打包进Application Folder

右键Application Folder --> Add --> 文件。选择对应的debug或release文件夹中的内容,添加进入Application Folder。

如果有文件夹,需要手动添加:右键Application Folder --> Add --> Folder

创建桌面快捷方式

右键主程序 --> Create Shortcut to 你的程序.exe

拖动到User's Desktop文件夹中,并修改名字

创建卸载程序

在Application Folder文件夹中添加C://Windows/System32/msiexec.exe程序,并给msiexec.exe创建快捷方式,并将快捷方式放在这三个文件夹中的任意一个,作为示例,我把它放到快捷方式中。

点击自己的安装项目,在属性页面找到ProductCode

找到刚刚创建的uninstall快捷方式,右键查看属性,在属性页面中修改Arguments为 /x ProductCode

给快捷方式创建图标

提前将ico图标文件放入Application Folder文件夹中。

找到快捷方式,右键属性页面,找到Icon

双击或者点击(Browse...)

点击Browse...

OK。

卸载程序的图标也是同理。

设置打包时的属性以及安装语言,安装位置等信息

默认安装位置设置

右键Application Folder文件夹进入属性页面

找到DefaultLocation

[ProgramFilesFolder][Manufacturer]\[ProductName]

默认在c盘Program Files文件夹中创建,Manufacturer和ProductName分别对应公司名称以及产品名称,这些可以在包属性页面进行修改。而且默认的安装路径也可以直接修改,例如修改为:D:\[ProductName],即直接安装到D盘的产品名称文件夹下。

安装语言:

修改安装页面弹出的提示页面的语言信息。

是否安装给这台电脑的全部用户

安装包适用的系统位数(32位选x86,64位选x64)

各个属性的作用

AddRemoveProgramsIcon:指定要在目标计算机上的“添加/删除程序”对话框中显示的图标。

Autor:指定应用程序或组件的作者姓名。

Desscription :指定任意形式的安装程序说明。

DelectNewerInstalledVersion:指定在安装期间是否检查应用程序的更新版本。

Keywords:指定用于搜索安装程序的关键字。

Localization:指定字符串资源和运行时用户界面的区域设置。

Manufacturer:指定应用程序或组件制造商的名称。

ManufacturerUrl:为包含应用程序或组件制造商信息的Web站点指定URL。

ProductCode:指定应用程序的唯一标识符。

ProductName:指定应用程序或组件的公共名称。

RemovePreviousVersions:指定安装程序在安装期间是否移除应用程序的早期版本。

SearchPath:指定用于在开发计算机上搜索程序集、文件或合并模块的路径。

Subject:指定描述应用程序或组件的附加信息。

SupportPhone:指定用于应用程序或组件支持信息的电话号码。

SupporUrl:为包含应用程序或组件支持信息的Web站点指定URL。

Title:指定安装程序的标题。

UpgraduCode:指定表示应用程序的多个版本的共享标识符。

Version:指定安装程序、合并模块或.cab文件的版本号。

四、打包

右键打包项目,选择生成

打包完成。

对应的debug或者release文件夹中出现以下文件

按照流程安装完成后桌面出现快捷方式

双击uninstall

安装的程序就已经被卸载掉啦!

五、附录

在安装该程序的时候,想要同时安装一些vc++的运行库应该如何操作

右键打包项目,选择属性

点击Prerequisites...

从组件供应商的网站上下载系统必备组件

需在线情况,下载对应的包进行安装。

从与我的应用程序相同的位置下载系统必备组件

想安装的组件在上面的选择中没有怎么办?

可以自己创建。

找到C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages

修改里面的package.xml以及product.xml文件中的内容,在系统必备组件中即可看到自己创建的内容,勾选后,再次点击安装包生成。在对应的debug或release文件夹中,将出现对应的包文件夹,安装时,将优先安装选择的组件。

从下列位置下载系统必备组件

六、附录二

右键包 -- > View --> 自定义操作

在install中加入别的安装包,即可在安装你的程序之前,先安装另一个程序。

在对应的Arguments可以增加静默安装的指令(如果支持的话)。


用Microsoft Visual Studio Installer Projects 2022打包程序,同时安装VC++的运行库等》 是转载文章,点击查看原文


相关推荐


高德MCP服务接入
QD.Joker2025/11/12

创建一个agent,集成高德MCP工具 文章目录 一、安装依赖二、获取高德key三、代码实现 一、安装依赖 pip install openai pip install langchain (1.0版本以上) pip install langchain_mcp_adapters 二、获取高德key https://lbs.amap.com/api/mcp-server/create-project-and-key 三、代码实现 import asynci


XC7A200T-2FBG676I Xilinx AMD Artix-7 FPGA
XINVRY-FPGA2025/11/10

XC7A200T-2FBG676I 是 赛灵思 Xilinx AMD 推出的高性能低功耗 FPGA,隶属于 Artix-7 系列。该芯片基于 28nm 低功耗硅工艺,采用可扩展的 7 系架构,旨在在性能、功耗和成本之间实现最佳平衡。它主要面向高速数据采集、视频处理、通信系统、工业控制与嵌入式硬件加速等场合,适合那些需要较高逻辑容量和中高速信号处理能力的系统。 该芯片拥有约 215,360 个逻辑单元,包含约 33,650 个查找表(LUT)等效逻辑模块,内部集成大容量片上存储资源,总片上


Socket编程实战:从基础API到多线程服务器
violet-lz2025/11/8

一、Socket编程概述:网络通信的桥梁 Socket(套接字)是网络通信的端点,它提供了不同主机间进程通信的接口。在Linux系统中,Socket可以被视为一种特殊的文件描述符,通过标准的文件I/O操作来进行网络数据传输。 Socket编程的核心概念         通信域:确定通信的协议族和地址格式         套接字类型:定义通信的语义和特性         协议:指定具体的传输协议         地址:标识网络中的通信端点 学习Socket编程的重要性:      


Python编程实战 · 基础入门篇 | 列表(list)
程序员爱钓鱼2025/11/6

在 Python 中,列表(list) 是最常用、最灵活的数据结构之一。 它能存放多个数据,可以增删改查,还能嵌套其他列表,是编程中处理“集合类信息”的核心工具。 本章我们将系统学习列表的定义、操作方法、常用函数与实战应用。 一、什么是列表 列表(list)是一个 有序、可变 的元素集合。 它可以存储任意类型的数据,包括数字、字符串、布尔值、甚至其他列表。 示例: numbers = [1, 2, 3, 4, 5] fruits = ["apple", "banana", "cherry"]


Python 的内置函数 float
IMPYLH2025/11/1

Python 内建函数列表 > Python 的内置函数 float Python 的内置函数 float() 是一个用于将数字或字符串转换为浮点数(即带有小数部分的数字)的函数。它是 Python 中处理数值转换的重要工具之一,常用于数据类型转换和数值计算场景。 功能说明 无参数调用:当不带任何参数调用时,float() 会返回 0.0 print(float()) # 输出: 0.0 数字转换: 整数转换为浮点数print(float(5)) # 输出: 5.0 布尔


【操作系统】计算机系统概述
.笑对人生.2025/10/30

目录 一、操作系统的基本概念 (一)操作系统的概念 (二)操作系统的功能和目标 (三)操作系统的特征 二、操作系统发展历程 (一)手工操作阶段(此阶段无操作系统) (二)批处理阶段(操作系统开始出现) (三)分时操作系统 (四)实时操作系统 (五)网络操作系统和分布式计算机系统 (六)个人计算机操作系统 三、操作系统的运行环境 (一)处理器运行模式 (二)中断和异常的概念 (三)系统调用 (四)操作系统运行环境的切换 四、操作系统结构 五、操作系统引导


搭建虚拟机完全分布式(centos)
小鹿学程序2025/10/27

在搭建完全分布式集群前,通常需要先在一台基础节点(可作为主节点或模板节点) 上完成基础环境配置,后续再通过克隆或批量操作同步到其他节点。以下是详细的实操步骤(以 CentOS 7 为例,其他 Linux 发行版操作类似): 一、准备工作 操作系统:确保基础节点已安装好 Linux 系统(推荐 CentOS 7/8、Ubuntu 20.04 等),并配置好静态 IP(避免 IP 动态变化影响集群通信)。 查看 IP:ip addr 配置静态 IP(CentOS 7):编辑 /etc/syscon


系统权限与信息收集:从CPU架构到后渗透实战的完整技术体系
PyHaVolask2025/10/24

文章目录 前言系统权限体系Windows权限层级权限等级划分各权限特点详解权限实战应用 Linux权限体系权限结构权限查看 虚拟机环境配置 CPU保护环机制Ring架构概述Ring 0(内核态)Ring 3(用户态)硬件黑客技术BadUSB攻击USB Killer(烧鹅)高级侧信道攻击 漏洞编号体系Microsoft漏洞编号(MS)CVE漏洞编号CNNVD漏洞编号漏洞研究资源 GitHub技术积累账号建设价值技术搜索技巧开源贡献建议 后渗透信息收集MSF信息收


scrapy爬取豆瓣电影
Derrick__12025/10/22

在李玺老师《爬虫逆向进阶实战》中了解到scrapy后,本意是打算利用b站上更详细的教程爬取一下豆瓣网站国产高分电影的列表。 但是最后爬取出来的结果并没有成功分出国产这一栏目 在ai帮我调试了好几次也没有做好


【自动化测试07】nodejs代码覆盖率测试工具Istanbul(nyc)
郑同学的笔记2025/10/21

【自动化测试07】nodejs代码覆盖率测试工具Istanbul(nyc) 一、代码覆盖率? 二、测试nodejs代码覆盖率的工具优缺点介绍 三、Istanbul(nyc) 1、简介 2、官网 3、安装 4、在项目的package.json 脚本中添加如下命令: 5、配置脚本:在你的项目根目录中,创建一个名为 .nycrc 的文件,并添加以下配置信息: 6、运行测试并生成覆盖率报告:在你的项目根

首页编辑器站点地图

Copyright © 2025 聚合阅读

License: CC BY-SA 4.0