惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
Microsoft Azure Blog
Microsoft Azure Blog
aimingoo的专栏
aimingoo的专栏
Vercel News
Vercel News
U
Unit 42
L
LangChain Blog
J
Java Code Geeks
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
The Cloudflare Blog
F
Fortinet All Blogs
小众软件
小众软件
I
InfoQ
P
Proofpoint News Feed
D
DataBreaches.Net
Martin Fowler
Martin Fowler
H
Help Net Security
T
Tailwind CSS Blog
N
Netflix TechBlog - Medium
有赞技术团队
有赞技术团队
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
B
Blog RSS Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
B
Blog

博客园 - MeteorSeed

【译】告知您的模型何时需要进行深度思考 【译】Visual Studio 七月更新 —— 认识全新智能体,由 GitHub Copilot SDK 提供技术支持 【译】Visual Studio 管理员?快来参与我们的私有市场预览版体验! 【译】挑选、管理并充分发挥你的模型 【译】内置 Agent Skill 将 .NET 与 Azure 专业能力引入 Visual Studio 【译】Visual Studio 开发、测试权益:在 Azure 中自由构建、测试与开展实验 【译】Visual Studio 六月更新 —— 追踪使用情况,信赖你的工具 【译】自定义 Visual Studio 的界面外观 【译】无需离开 Visual Studio 即可审阅拉取请求 【译】Visual Studio 五月更新 —— 计划、评审、优化 【译】构建前先计划:带你了解 Visual Studio 中的 Plan Agent 【译】Visual Studio 中的 Agent Skill:让 Copilot 适配团队工作模式 【译】TypeScript 7 测试版已在 Visual Studio 2026 18.6 Insiders 3 中默认启用 【译】Visual Studio 四月更新 —— Cloud Agent 集成 【译】Azure MCP 工具现已内置集成至 Visual Studio 2022,无需额外安装扩展 【译】告别繁琐查错:认识下新的 Visual Studio Debugger Agent Workflow 【译】在 Visual Studio 中完全掌控您的悬浮窗口 【译】Bookmark Studio:在 Visual Studio 中实现书签功能升级 【译】Visual Studio 三月更新 —— 打造专属自定义 Agent 本地大模型部署全攻略:从 0 到 1 玩转 Ollama 【译】让开发流程更高效:为 Visual Studio 订阅用户解锁 Syncfusion 【译】第一时间获取 Visual Studio 订阅的独家资讯,直达您的收件箱 【译】Visual Studio Dev Essentials:面向每位开发者的免费实用工具 【译】Visual Studio 二月更新 【译】Visual Studio 中的 Agent:内置 Agent 和自定义 Agent 【译】Visual Studio 一月更新 —— 增强的编辑器体验 【MongoDB】MongoDB 概述 【译】Copilot 记忆 【译】Visual Studio 2026 来了:更快、更智能,深受老用户的喜爱 【译】AI 是如何解决我的拖延症的
【译】利用 GitHub Actions 实现 Visual Studio 扩展构建自动化
MeteorSeed · 2026-07-13 · via 博客园 - MeteorSeed

  如果您正在开发和维护 Visual Studio 扩展程序,大概率都会搭建一套构建与发布工作流 —— 无论是手动操作、脚本化的,还是长期逐步拼凑而成的流程。

  本文面向扩展插件开发者,如果您希望借助 GitHub Actions 实现 VSIX 文件的构建、版本管理与发布,且流程简单、可重复执行,本篇内容将为您提供相关方案。

  我将演示如何在我自己的各类扩展程序中实现这一操作。

1

  我长期都在使用这套方法,久而久之,我把重复度最高的代码片段整理成了少量可复用的小型 action,这样就不用在每个代码仓库里重复编写相同逻辑了。

  分别为:

  - vsix-version-stamp —— 同步统一版本号

  - publish-vsixgallery —— 发布持续集成构建版本用于测试

  - publish-marketplace —— 发布至 Visual Studio 应用市场

  您可以单独使用它们,也可以搭配使用,但我通常会把三者全部用上。

  如果您想查看该内容在真实代码仓库中的配置实现,可以参考启 Start Screen 项目。

一套真实可行的工作流程

  下面是一套简易配置方案,和我目前所有扩展程序在用的配置大体一致:

name: Build
on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:
    runs-on: windows-latest

    env:
      Configuration: Release
      VsixManifestPath: src\source.extension.vsixmanifest
      VsixSourcePath: src\source.extension.cs

    steps:
      - uses: actions/checkout@v6

      - name: Setup MSBuild
        uses: microsoft/setup-msbuild@v3

      - name: Restore
        run: msbuild /t:Restore

      - name: Version stamp
        uses: madskristensen/vsix-version-stamp@v2
        with:
          manifest-file: ${{ env.VsixManifestPath }}
          vsix-token-source-file: ${{ env.VsixSourcePath }}

      - name: Build
        run: msbuild /p:Configuration=$(Configuration)

      - name: Publish to VSIX Gallery
        uses: madskristensen/publish-vsixgallery@v1
        with:
          vsix-file: '**/*.vsix'

      - name: Publish to Marketplace
        uses: madskristensen/publish-marketplace@v2
        with:
          extension-file: '**/*.vsix'
          publish-manifest-file: vs-publish.json
          personal-access-code: ${{ secrets.VS_MARKETPLACE_TOKEN }}

  这本质上就是完整流程:版本管理、构建、打包与发布。

  您可以在此处调整发布触发时机(例如,仅在发布时执行),但核心配置基本保持不变。

保持版本同步

  版本控制是很容易出错的一类工作。

  vsix-version-stamp action 会在构建过程中自动更新版本号,无需人工手动处理。

  它搭配 VSIX Synchronizer extension 插件使用效果尤为出色,该插件可基于您的 .vsixmanifest 文件生成对应的 .cs 文件。

  由此可得:

  - 唯一可信数据源

  - 代码内置对应版本

  - 发布前禁止手动修改

    这完全是非必需的,但一旦您开始使用它,就很容易离不开。

发布至 Visual Studio Marketplace

  一旦您制作好 VSIX 文件,将其发布到应用市场的操作就十分简单。

  您只需要一个秘诀:

  - VS_MARKETPLACE_TOKEN

- name: Publish to Marketplace
  uses: madskristensen/publish-marketplace@v2
  with:
    extension-file: '**/*.vsix'
    publish-manifest-file: vs-publish.json
    personal-access-code: ${{ secrets.VS_MARKETPLACE_TOKEN }}
 就这样。

  VSIX 文件包含扩展程序元数据,发布清单则补充剩余相关信息。

发布至 VSIX Gallery (用于持续集成构建与测试)

  publish-vsixgallery action 有着不同的用途。

  它用于快速分发安装包。

  我主要会在将修复方案提交至应用商店前,让他人先行测试该修复、验证相关改动时使用它。

- name: Publish to VSIX Gallery
  uses: madskristensen/publish-vsixgallery@v1
  with:
    vsix-file: '**/*.vsix'

  这正是 VSIX Gallery 的优势所在 —— 分发流程高效、占用资源少,无需完整版本发布带来的额外开销。

  也可使用您自己的 Gallery。

  VSIX Gallery 为开源项目,因此如有需要,您可以搭建专属的独立部署实例。

  GitHub Action 支持可配置的 gallery-url,因此它不会绑定至某个特定的托管 Gallery中。

- name: Publish to VSIX Gallery
  uses: madskristensen/publish-vsixgallery@v1
  with:
    vsix-file: '**/*.vsix'
    gallery-url: 'https://your-gallery.example.com'

  这使得无论您是面向公共 Gallery 发布内容,还是使用自建托管服务,都能采用同一套工作流程。

混搭

  您无需全部使用这三项操作。

  一些常见配置方案:

  Minimal

  - Build + Marketplace publish

  CI-focused

  - Build + VSIX Gallery publish

  Full pipeline

  - Version stamping + build + gallery + Marketplace

  选用适配您工作流程的方案即可。

该如何选择发布渠道

  - VSIX Gallery :用于测试、分发构建包以及快速验证

  - Visual Studio Marketplace:用于正式版本发布

  多数扩展建议同时使用两种渠道:

  - 持续集成构建包上传至 VSIX Gallery

  - 稳定版本发布至 Visual Studio Marketplace

小结

  这是我在所有扩展程序中统一使用的配置方案。

  这套方案能让流程稳定可控,便于共享构建文件,还能省去发布流程里绝大多数重复操作。

  您无需全盘照搬。可以先选用适配自身工作流的部分,再在此基础上逐步完善。

原文链接:https://devblogs.microsoft.com/visualstudio/automating-your-visual-studio-extension-builds-with-github-actions/

me