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

推荐订阅源

S
Schneier on Security
F
Fortinet All Blogs
B
Blog
GbyAI
GbyAI
P
Proofpoint News Feed
量子位
The Register - Security
The Register - Security
宝玉的分享
宝玉的分享
大猫的无限游戏
大猫的无限游戏
云风的 BLOG
云风的 BLOG
V
Visual Studio Blog
B
Blog RSS Feed
WordPress大学
WordPress大学
Recorded Future
Recorded Future
Recent Announcements
Recent Announcements
V
Vulnerabilities – Threatpost
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
S
Secure Thoughts
雷峰网
雷峰网
Stack Overflow Blog
Stack Overflow Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Webroot Blog
Webroot Blog
AWS News Blog
AWS News Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
The GitHub Blog
The GitHub Blog
爱范儿
爱范儿
O
OpenAI News
月光博客
月光博客
H
Hacker News: Front Page
S
Security Affairs
W
WeLiveSecurity
The Hacker News
The Hacker News
aimingoo的专栏
aimingoo的专栏
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Help Net Security
Help Net Security
MongoDB | Blog
MongoDB | Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
D
Docker
T
The Blog of Author Tim Ferriss
Spread Privacy
Spread Privacy
Blog — PlanetScale
Blog — PlanetScale
J
Java Code Geeks
S
Securelist
Microsoft Azure Blog
Microsoft Azure Blog
TaoSecurity Blog
TaoSecurity Blog
T
Threat Research - Cisco Blogs
M
MIT News - Artificial intelligence
A
About on SuperTechFans

博客园 - MeteorSeed

【译】自定义 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 是如何解决我的拖延症的 【译】使用 Visual Studio 2026 简化您的 Git 工作流程 【译】借助 Copilot Chat 新推出的 URL 上下文功能,释放互联网的力量 【译】Visual Studio 11 月更新 —— Visual Studio 2026、Cloud Agent Preview 及更多内容 【译】Copilot Profiler Agent —— 分析任务交由 AI,应用性能不受影响 【译】Visual Studio —— 为现代开发的速度而打造 【译】在 Visual Studio 2026 中,减少升级时间,增加编码时间 【译】Azure MCP 服务器现已内置到 Visual Studio 2026 中:智能体工作流的新时代 Newtonsoft.Json 与 System.Text.Json 多态反序列化的安全性差异解析 【译】初探 Visual Studio 2026 全新的用户体验
【译】利用 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