Visual Studio 中的部署

阿里云服务器

部署指南:利用Visual Studio高效发布应用程序与服务

部署应用程序、服务或组件至本地环境、云端或网络共享,是软件开发过程中不可或缺的环节。Visual Studio作为全方位的集成开发环境,提供了多种部署方法以满足不同项目类型和目标平台的需求。本文将详述如何使用Visual Studio进行各种部署操作,包括部署到本地文件夹、Azure、Web或网络共享、Microsoft Store、设备,以及实现连续部署和数据库项目发布。

1. 部署到本地文件夹

目的:主要用于测试或作为分阶段部署的第一步。

适用类型:ASP.NET、ASP.NET Core、Node.js、Python、.NET Core、.NET 5及以上版本。

操作步骤:

ASP.NET、ASP.NET Core、Node.js、Python、.NET Core/.NET 5+: 使用发布工具部署到本地文件夹。在解决方案资源管理器中,右键点击项目选择“发布”,如需新建配置文件则选择“新建配置文件”,接着选择“文件夹”作为目标。

Windows桌面应用:采用ClickOnce部署,用户只需单击即可安装。具体参见相关文章链接。

2. 发布到Azure

适用类型:ASP.NET、ASP.NET Core、Python、Node.js。

部署方式:

  • 持续部署:结合Azure DevOps与Azure管道实现自动部署。

  • 一次性部署:使用Visual Studio的“发布”工具。在解决方案资源管理器中,右键点击项目选择“发布”,新建或选择已有配置文件,然后在“发布”对话框中选择“Azure”,并指定Azure服务继续。

  • GitHub Actions部署:针对GitHub.com托管的项目,创建GitHub Actions工作流。

  • Git部署:适用于ASP.NET Core,通过Git实现持续部署到Azure。

3. 部署到Web或网络共享

适用类型:ASP.NET、ASP.NET Core、Node.js、Python、Windows桌面应用。

部署方式:

ASP.NET、ASP.NET Core、Node.js、Python:通过FTP或Web部署使用发布工具部署到网站。在解决方案资源管理器中,右键点击项目选择“发布”,新建或选择已有配置文件,然后在发布工具中选择相应部署选项并按照提示配置。

Windows桌面应用:同样支持ClickOnce部署到Web服务器或网络文件共享。

quickstart-publish (1).png

4. 创建安装程序包(Windows桌面应用)

适用场景:需要复杂安装流程的桌面应用,替代ClickOnce。

工具选择:

  • WiX Toolset Visual Studio 2022扩展:创建基于MSI的安装包。

  • 安装项目(vdproj):适用于Visual Studio,创建MSI或EXE安装包。可参考相关扩展插件。

  • InstallShield:由Flexera Software提供,创建MSI或EXE安装包。支持Visual Studio 2017及以上版本,但不支持Community Edition。

5. 发布到Microsoft Store

适用类型:UWP应用、Windows桌面应用(从Visual Studio 2017 15.4版开始)。

操作步骤:

UWP应用:使用菜单项打包并部署应用。

Windows桌面应用:创建Windows应用程序打包项目,然后部署至Microsoft Store。

quickstart-publish-iis.png

6. 部署到设备(UWP)

目的:将UWP应用部署到测试设备。

操作指引:参阅在Visual Studio中在远程计算机上运行UWP应用的相关文档。

7. 部署到测试实验室

场景:在复杂虚拟环境中进行开发和测试。

推荐工具:Azure Development Test Labs。

quickstart-publish-azure-new.png

8. 连续部署

推荐方案:利用Azure Pipelines实现应用的持续部署。

9. 部署SQL数据库

  • 更改目标平台并发布数据库项目(SQL Server Data Tools, SSDT)

  • 部署Analysis Services项目(SSAS)

  • 部署Integration Services(SSIS)项目和包

  • 生成并部署到本地数据库

Visual Studio为开发者提供了全面且灵活的部署解决方案,覆盖从本地测试到云端部署,从Web发布到应用商店分发,从设备安装到数据库管理等多样化场景。依据项目类型、目标平台及特定需求,选择合适的部署策略和工具,可显著提升软件发布的效率与质量。