【VS2022】(C#,WinForm)上位机打包为安装包

news/2025/1/9 19:16:47 标签: c#, 开发语言

文章目录

    • 一、插件安装
    • 二、创建安装程序项目
    • 三、配置安装程序项目
      • 步骤一:添加应用程序文件
      • 步骤二:配置安装位置
      • 步骤三:创建快捷方式
      • 步骤四:创建卸载程序
      • 步骤五:配置启动条件
    • 四、生成和发布安装包
    • 五、msi和exe两种安装程序文件的区别

一、插件安装

  安装官方扩展 Microsoft Visual Studio Installer Projects 2022,Visual Studio 2022 不再提供内置的安装程序项目模板,而是推荐使用 Visual Studio Installer Projects 官方扩展来创建安装程序。这个扩展可以创建和管理基于 Windows Installer 的安装程序项目。

1. 点击“扩展” -> “管理扩展”。

在这里插入图片描述
2. 在搜索框中搜索“installer”,选择该扩展,点击“安装”,过程中根据提示需要关闭Visual Studio 2022。

在这里插入图片描述

3. 重启VS2022软件进行安装插件。

在这里插入图片描述
在这里插入图片描述

4. 检查扩展否已正确安装。

在这里插入图片描述



二、创建安装程序项目

  安装完扩展后,可以创建一个新的安装程序项目来打包应用程序。

1. 右键点击需要打包项目的解决方案,选择“添加” -> “新建项目”。

在这里插入图片描述

2. 在“搜索框”中输入“setup”,选择“Setup Project”项目类型,点击“下一步”。

在这里插入图片描述

3. 给项目起一个名称,然后点击“创建”(名称建议:原项目名称+Setup)。

在这里插入图片描述



三、配置安装程序项目

  在创建安装程序项目后,可以配置安装程序的详细设置。默认会打开文件系统视图,同时也可以通过右击Setup工程项目,选择“View” -> “文件系统”。
在这里插入图片描述


步骤一:添加应用程序文件

  Application Folder文件夹内需要包含原项目的所有静态资源,命名需要保持一致。右击“Application Folder”,选择“Add”,可以按需添加文件和文件夹。推荐直接粘贴。添加项目主输出。

1. :将原项目中的“Resources”文件夹,复制到Setup项目的“Application Folder”文件夹下。右击“Resources”,选择“在文件资源管理器中打开文件夹”,定位到需要复制的文件夹,右击“复制”。最后再右击“Application Folder”,选择“粘贴”即可。

在这里插入图片描述
在这里插入图片描述

2. 在文件系统视图中,右击“Application Folder”,选择“Add” -> “项目输出”。

在这里插入图片描述

3. 在弹出的窗口中,选择需要打包的项目,选择“主输出”,点击“确定”即可。这将添加应用程序的可执行文件及其依赖项到安装程序项目中。

在这里插入图片描述
在这里插入图片描述


步骤二:配置安装位置

1. 右键点击“Application Folder”,选择“属性窗口”,可以设置默认的安装路径。默认路径为 [ProgramFilesFolder][Manufacturer][ProductName]。

在这里插入图片描述

2. Manufacturer和ProductName可以在项目属性里设置,单击Setup项目,即可出现以下属性窗口,建议修改的属性有:卸载程序图标/作者/制造商/项目名称/标题。(tip:项目名称和标题建议去除Setup字样,因为后续会显示在windows的程序菜单名称里)

在这里插入图片描述


步骤三:创建快捷方式

1. 右击“主输出”,选择“Create Shortcut to 主输出…”,重命名为项目名称即可。然后将其拖拽到“User‘s Desktop”文件夹下。

在这里插入图片描述
在这里插入图片描述

2. 重复上述操作,再创建一个快捷方式,将其拖拽到“User’s Programs Menu”文件夹下。

在这里插入图片描述

3. 给两个快捷方式都设置应用图标,单击快捷方式,在属性窗口中,设置icon路径。icon图标,需要提前放在应用程序文件夹(Application Folder)中。

在这里插入图片描述


步骤四:创建卸载程序

1. msiexec.exe 是 Windows 的内置程序,用于安装、修改和卸载软件包。它通常位于系统目录中。具体路径是C:\Windows\System32\msiexec.exe,复制该“msiexec.exe”文件。

在这里插入图片描述
在这里插入图片描述

2. 将其重命名为“卸载xxx”后,右击创建快捷方式。

在这里插入图片描述

3. 单击Setup项目,在其属性页签,复制ProductCode的值。

在这里插入图片描述

4. 在创建的快捷方式属性中,将ProductCode的值粘贴过来,修改Arguments的值为: /x {57E09A.....}。注意/x后有一个空格,名称/描述/图标 等属性都可以根据需要更改。

在这里插入图片描述

5. 在“User’s Programs Menu”文件夹下,再创建一个文件夹“Beginner Guide”,用于存放程序快捷方式和卸载程序快捷方式。将原本的程序快捷方式和刚刚创建的卸载程序快捷方式都拖拽进文件夹“Beginner Guide”下。

在这里插入图片描述


步骤五:配置启动条件

1. 在解决方案资源管理器中,右击Setup项目,选择“View” -> “启动条件”。

在这里插入图片描述

2. 在启动条件视图中,可以添加或修改安装前的条件检查。例如,检查 .NET Framework 版本。右击“Launch Conditions”视图中的空白处,选择“添加启动条件”。在属性窗口中,可以设置启动条件的属性,例如“条件”、“消息”等。条件可以是操作系统版本、系统权限、特定文件或注册表键是否存在等。

在这里插入图片描述



四、生成和发布安装包

1. 在菜单栏单击“生成”,选择“配置管理器”,在弹出的窗口中,选择“Release”配置,并且将Setup项目的“生成”也打上勾。配置完毕,关闭该窗口。

在这里插入图片描述
在这里插入图片描述

2. 防止之前调试过程中,已经生成过解决方案产生冲突,这里先点击“清理解决方案”,再点击“重新生成解决方案”。

在这里插入图片描述

3. 生成成功后,右击Setup项目,选择“在文件资源管理器中打开文件夹”,即可看到有两个文件夹Debug和Release。由于刚刚我们在“生成”的“配置管理器”中选择的是Release,此处打开“Realease”文件夹,即可看到生成的安装程序。将后缀为msi的文件分发给他人即可直接安装。

在这里插入图片描述



五、msi和exe两种安装程序文件的区别

.msi 和 .exe 是两种不同类型的安装程序文件,它们有一些显著的区别:

(1)文件类型与扩展名

  • .msi 文件:代表 Microsoft Installer Package。这是由 Windows Installer 服务使用的安装包文件格式。
  • .exe 文件:代表可执行文件。这是一种可以在 Windows 操作系统上运行的程序文件,通常可以包含安装程序逻辑。

(2) 功能和用途

  • .msi 文件:
  •   专用于安装和配置:.msi 文件主要用于安装、维护和删除软件应用程序。
  •   标准化安装过程:使用 Windows Installer 服务来处理安装过程,提供标准化和一致的安装体验。
  •   易于管理:适合大规模部署,可以与组策略或其他企业管理工具配合使用。
  •   内置修复功能:能够自动修复损坏的安装,通过重新安装丢失或损坏的文件。
  •   数据库结构:.msi 文件使用数据库格式存储安装信息,包括文件、注册表项、快捷方式等。
  • .exe 文件
  •   灵活性更高:.exe 文件可以包含更多自定义的安装逻辑,允许开发者在安装过程中执行复杂的操作。
  •   打包多种内容:可以包含压缩的 .msi 文件和其他资源文件,还可以包含自定义代码来实现更多功能。
  •   引导程序:通常用于引导安装过程,解压缩文件并运行 .msi 文件或执行其他必要的准备工作。
  •   多平台支持:尽管 .exe 文件主要用于 Windows,也可以用于跨平台的安装程序(如 Java 安装程序)。

(3)优缺点比较

  • .msi 文件的优点
  •   标准化:提供一致的安装体验。
  •   易于管理:与企业级部署工具和策略兼容。
  •   内置修复功能:可以自动修复损坏的安装。
  •   较小的文件体积:通常比包含自定义逻辑的 .exe 文件更小。
  • .exe 文件的优点
  •   灵活性:可以包含复杂的自定义安装逻辑。
  •   兼容性:可以包含并运行 .msi 文件,提供更灵活的安装体验。
  •   多功能:不仅限于安装,还可以执行其他操作,如配置系统环境、安装驱动程序等。

(4)典型使用场景

  • 单独使用 .msi 文件:适用于简单的软件安装,不需要额外的自定义逻辑,且需要企业级部署。
  • 组合使用 .msi 和 .exe 文件:适用于需要复杂安装逻辑的软件,使用 .exe 文件作为引导程序来解压并运行 .msi 文件。

总结

  • .msi 文件:适用于需要标准化、易于管理和修复的软件安装场景,主要使用 Windows Installer 服务进行安装。
  • .exe 文件:适用于需要灵活性和自定义安装逻辑的场景,可以包含复杂的安装逻辑和多种内容。
  • 这两种文件类型各有其适用场景,开发者可以根据具体需求选择合适的安装文件类型。


http://www.niftyadmin.cn/n/5817906.html

相关文章

C++之闭散列哈希表

目录 unordered_set和unordered_map 哈希概念 哈希表基本结构 哈希冲突 线性探测​编辑 二次探测 前几期我们学习了红黑树和红黑树的模拟实现,最终使用红黑树封装了map和set。本期开始我们将学习下一个重要的知识点---哈希表,最终使用哈希表封装u…

EasyExcel上传校验文件错误信息放到文件里以Base64 返回给前端

产品需求: 前端上传个csv 或 excel 文件,文件共4列,验证文件大小,类型,文件名长度,文件内容,如果某行某个单元格数据验证不通过,就把错误信息放到这行第五列,然后把带有…

javascript e.preventDefault() 的作用和用法

📚 e.preventDefault() 的作用和用法 ✅ e.preventDefault() 是一个常用的 JavaScript 方法,用于 阻止事件的默认行为。它通常在 表单提交、链接跳转、右键菜单 等场景中使用,防止浏览器执行特定的默认操作。 🔎 1. 为什么使用 e…

技术速递|通过 .NET Aspire 使用本地 AI 模型

作者:Aaron Powell 排版:Alan Wang 使用本地 AI 模型是无需将资源部署到云中即可在自己的机器上进行实验的好方法。在本文中,我们将探讨如何使用 .NET Aspire 与 Ollama 来本地运行 AI 模型,同时利用 Microsoft.Extensions.AI 抽象…

PHP语言的函数实现

PHP语言的函数实现 引言 PHP(全称:PHP: Hypertext Preprocessor)是一种广泛使用的开源服务器端脚本语言,尤其适合于Web开发。它的灵活性和强大功能使得PHP成为了各种网站和应用程序的首选语言之一。在PHP编程中,函数…

unity-入门查漏补缺0.2.05.10

unity-入门查漏补缺 1. 普通项目和urp项目的区别2. 如何将普通项目升级为urp项目3. 导入素材后,为什么物品是紫色的4. 导入素材后,如何适配渲染管线4. 如何在assets网上添加素材到unity中5. 如何更改天空盒子6. 如何调出渲染管线设置窗口7. 如何让场景的…

rust学习——环境搭建

rust安装:https://kaisery.github.io/trpl-zh-cn/ch01-01-installation.html 1、vscode装插件: toml语法支持 依赖管理 rust语法支持 2、创建demo 3、查看目录 4、执行文件的几种方式: rust安装:https://www.rust-lang.org/z…

学生公寓安全用电管理的特点

学生公寓安全用电管理的特点主要包括以下几个方面‌: ‌禁止使用大功率电器‌:为了防止电路负荷过大引发火灾,学生公寓内禁止使用大功率电器,如电吹风、取暖器、热得快、电热杯、电饭锅、电磁炉等‌。这些设备功率较大&#xff0…