【译】新的 MSBuild 编辑体验

💡 原文中文,约2600字,阅读约需7分钟。
📝

内容提要

微软发布了实验性的MSBuild编辑器,帮助开发人员理解和编辑项目文件。编辑器提供快速信息和智能感知功能,支持属性和项的搜索和定义。具有验证和代码修复功能,帮助开发人员发现问题。可编写自定义MSBuild targets的schema,提供丰富的编辑体验。目前仅适用于Visual Studio,正在移植到Visual Studio Code。

🔎

延伸解读

谁适合使用这个实验性编辑器

文章指出,尽管 Visual Studio 提供了丰富的 UI 来管理项目,但开发者在某些场景下仍需直接编辑 csproj 文件,例如访问 UI 未公开的高级功能、合并源代码控制更改,或编写 targets 和 props 文件。如果你属于这些情况,新的 MSBuild 编辑器可能对你有所帮助。

超越 XML 验证的智能检查

MSBuild 编辑器的验证不仅限于 XML 语法,它还将类型系统覆盖到 MSBuild 上,因此能捕获 URL 或版本字符串等格式错误。同时,它对 MSBuild 表达式格式的理解,使得无需运行构建就能发现格式不正确的条件和表达式,甚至还提供了 Roslyn 风格的分析器和代码修复。

通过自定义 schema 增强编辑体验

编辑器由一种新的基于 JSON 的 MSBuild 特定 schema 格式驱动,允许为属性、项、项元数据和 targets 定义文档和类型注释。除了内置的 .NET SDK 等 schema,你还可以为自己的 MSBuild targets 编写 schema,以在编辑或使用它们时获得更丰富的体验。如果你是包含 build targets 的 NuGet 包作者,还可以在包中发布 sidecar schema,提升使用者的编辑体验。

当前限制与未来计划

目前,MSBuild 编辑器仅适用于 Visual Studio,但移植到 Visual Studio Code 的工作正在进行中。作者正在将扩展移植到 LSP(语言服务器协议),以便它能在 Visual Studio Code 扩展中使用。此外,扩展是开源的,欢迎反馈和贡献,其未来发展将取决于用户反馈。

❓

Q&A

MSBuild编辑器的主要功能是什么?

MSBuild编辑器帮助开发人员理解和编辑项目文件,提供快速信息、智能感知、验证和代码修复功能。

MSBuild编辑器目前支持哪些开发环境?

目前MSBuild编辑器仅适用于Visual Studio,正在移植到Visual Studio Code。

如何使用MSBuild编辑器进行项目文件的编辑?

用户可以直接在MSBuild编辑器中编辑csproj文件,利用智能感知和快速信息功能来访问高级特性。

MSBuild编辑器如何帮助开发人员发现问题?

编辑器提供验证功能,能够捕获格式错误,并提供Roslyn风格的分析器和代码修复。

用户如何为自己的MSBuild targets编写schema?

用户可以定义基于json的schema,以增强MSBuild编辑器的编辑体验,特别是对于包含build targets的NuGet包。

MSBuild编辑器的扩展是否开源?

是的,MSBuild编辑器的扩展是开源的,用户可以在GitHub上贡献和反馈。

🏷️

标签

➡️

继续阅读