- VisualStudio2022插件的安装及使用-编程手把手系列文章
- pprof-在现网场景怎么用
- C#实现的下拉多选框,下拉多选树,多级节点
- 【学习笔记】基础数据结构:猫树
MSBuild 是 .NET 开发体验的基本组成部分,但它对新手和有经验的开发人员都具有挑战性。为了帮助开发人员更好地理解他们的项目文件,并访问需要直接编辑项目文件的高级功能,我们发布了一个实验性的 MSBuild 编辑器,它对 MSBuild 文件的理解比当前 XML schema 所允许的要丰富得多。根据反馈,我们希望所有 .NET 开发人员都可以默认使用它。如果您使用 MSBuild 文件工作,请尝试一下,让我们知道它是如何工作的.
尽管 Visual Studio 为管理项目及其设置提供了丰富的 UI,但您可能需要直接编辑 csproj 文件以访问 UI 中未公开的某些高级特性。在从源代码控制合并更改时,您可能还需要直接编辑 csproj 文件,或者您可能正在编写 targets 和 props 文件以供本地使用或在 NuGet 包中发布。如果这些场景中的任何一个适用于您,那么我们希望您体验下新功能.
新的 MSBuild 编辑器不仅为 MSBuild 文件中的 XML 元素提供了快速信息,还为 MSBuild 表达式中的属性、项和元数据提供了快速信息。快速信息弹出窗口更丰富,有指向相关文档的深层链接,以及指向其他文件引用的超链接,这些超链接可以帮助您了解底层如何使用该属性或项.
如果您想了解如何使用属性或项,可以使用 Ctrl-Click 或 Go to Definition 命令转到定义它的位置。你也可以使用 Find References 命令在所有导入的文件中执行精确的搜索
即使作为一名经验丰富的 MSBuild 作者,我也经常打开文档来查找 MSBuild 属性、项和元数据的确切名称和允许值。当我使用 MSBuild 编辑器时,我很少这样做,因为它几乎在文件的任何地方都提供智能感知,并根据它的 schema 提供文档
它对 NuGet 包有特殊的支持,允许你搜索包的 ID,并查看包的描述和链接到它的 NuGet.org 页面
其他类型也有特殊处理,例如语言文化
在 MSBuild 表达式中也支持智能感知,包括属性函数和项函数
编辑器并不局限于在其 schema 中定义的那些属性和项。它扫描所有导入的 MSBuild 文件,并为在这些文件中找到的任何属性、项、元数据和目标提供“推断完成”。更棒的是,工具提示有一个超链接,指向属性或项的应用场景
MSBuild 编辑器的验证不仅仅是 XML 验证。它将类型系统覆盖到 MSBuild 上,因此您将获得关于 URL 或版本字符串等的格式错误。它对 MSBuild 表达式格式的理解意味着您无需运行构建就可以捕获格式不正确的条件和表达式.
甚至还有一些 Roslyn 风格的分析器和代码修复.
MSBuild 编辑器由一种新的 MSBuild 特定的基于 json 的 schema 格式提供支持,该格式允许为 MSBuild 属性、项、项元数据和 targets 定义文档和类型注释。它包括 .NET SDK 和其他常用 targets 和 SDK 的内置schema.
但是,您也可以为自己的 MSBuild targets 编写 schema,以允许 MSBuild 编辑器在编辑或使用它们时提供更丰富的体验。如果您是包含 build targets 的 NuGet 包的作者,那么您可以在 NuGet 包中发布该 sidecar schema,以便为包的使用者提供更好的 MSBuild 编辑体验.
Q:扩展有一个 GitHub 仓库-我可以从源代码构建和贡献吗?
A:绝对!只需克隆仓库及其子模块,在 Visual Studio 中打开,然后按 F5.
Q:为什么扩展仓库、命名空间和程序集的名字中有“MonoDevelop”?
A:MSBuild 编辑器是我最初在2015年3月为 MonoDevelop IDE 创建的扩展的后代。尽管它在过去几年里发展了很多,包括移植到 Visual Studio,但出于怀旧的考虑,我保留了内部名称.
Q:我可以在 Visual Studio Code 中使用扩展吗?
A:还不行!我目前正在移植扩展到 LSP(语言服务器协议,Language Server Protocol),所以它可以在 Visual Studio Code 扩展中使用。虽然 LSP 是新扩展的明显选择,但这个代码库可以追溯到 Visual Studio Code 发布之前.
如果您想尝试下,你可以通过在 Visual Studio 扩展管理中搜索“MSBuild Editor”找到它,或者从 Visual Studio Marketplace 下载它。该扩展目前仅适用于 Visual Studio,但将其移植到 Visual Studio Code 的工作正在进行中.
如果您遇到任何此扩展的任何问题,请发布其到 GitHub 问题页面。扩展是开源的,欢迎贡献。请填写这份调查问卷,让我们了解您的经历。我们感谢您的反馈,它将有助于指导实验如何发展,以及 MSBuild 编辑器是否会成为 .NET 开发体验的官方支持部分.
。
原文链接:https://devblogs.microsoft.com/visualstudio/experimental-msbuild-editor/ 。
。
最后此篇关于【译】新的MSBuild编辑体验的文章就讲到这里了,如果你想了解更多关于【译】新的MSBuild编辑体验的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我有以下一段 msbuild 代码: C:\DirA\ C:\DirB\ '$(DirA)%(Filename)%(Extension)')">
我有一个 master.proj msbuild 脚本,它使用 MSBuild 任务构建多个项目。 这是一个典型的例子: 但是,我的问题是,如果在命令行上给出更多属性,它们不会传递给 MSB
我编写了一个自定义 MSBuild 任务,将其称为 TaskA,它解析文件并对其进行一些处理。我现在想编写另一个 MSBUild 任务,将其称为 TaskB,它在其中使用 TaskA。我知道我可以像使
我有好几次无法在 csproj 文件 (.NET Core) 中找到有关有效元素的信息。特别是具有 Content 和 Include/Exclude/Update/CopyToPublishDire
鉴于这样的事情.. DB1 Database
我有一个msbuild目标,它具有一个Import标签,如下所示: 在Company.LifeCycle.targets文件的内容中,如何以编程方式获取当前目录(在这种情况下为: C:\Progra
我在MSBuild脚本中创建的项目组的范围设置方面遇到一些问题。基本上,我想要做的是有两个不同的目标-我们将它们称为RunUnitTests和RunIntegrationTests-生成一个名为Tes
我希望下面的代码为 List 和 List2 生成相同的项目(我在搜索路径中有一个 cpp1 项目)。 '..\..\..\projects\**\%(identity).vcx
我正在编写一个 MSBuild 任务来升级数据库(完整源代码 here),遇到了一个我不知道如何处理的错误/设计特征。基本上,如果我声明: public int? TargetVersion {
MSBuild 针对最新目标发出以下消息: Skipping target "MyTarget" because all output files are up-to-date with respec
我正在为 msbuild 编写一个脚本,它应该在一个步骤中制作两批。 示例:2 个项目组 这两个组应该相互循环: 我希望 msbuild 使两个批次的结果都给出 1 A 2
我正在使用构建定义构建项目。执行此操作时,还会执行代码分析。代码分析输出各种文件,包括: ConsoleApplication2.exe.CodeAnalysisLog.xml ConsoleAppl
我正在尝试使用 MSBuild 从文本文件中读取文件列表,然后执行递归复制,将这些目录文件的内容复制到某个暂存区,同时排除某些扩展名(例如 .tmp 文件) 我已经设法使用 CreateItem 和
我有一个MSBuild项目,我希望将当前日期添加到正在创建的zip文件中。 我正在使用MSBuildCommunityTasks。 在网站http://msbuildtasks.tigris.or
我正在将一个 Web 应用程序包从 MSBuild 命令行部署到 IIS6 上的 MSDepSvc,它使用基本身份验证与以下命令一起正常工作: MSBuild.exe Web.csproj /p:
我有以下 MSBuild 脚本: test1;test2;test3 如果我调用不带任何参数的脚本,我会得
对于不是项目文件而是更复杂的构建脚本的 MSBuild 文件是否有标准文件扩展名? 我正在考虑 .msbuild.proj 以避免与其他 .proj 文件(我知道实际上是 MSBuild 文件)混淆。
假设我有两个耗时的目标,并且我想并行执行它们。假设一个目标运行单元测试,另一个目标生成一些文档。我尝试过这种方法: root.targets:
看起来(至少)有两个选项可以让 nant 使用 csproj 文件:使用 NAntContrib 的任务或直接使用 msbuild.exe (例如 codecampserver )。我读得对吗?如果是
如何获取内置 MSBuild 变量的列表? 我需要知道如何确定当前项目的 csproj 名称,并且认为了解我还能在 MSBuild 中找到什么内容可能会很有用。 最佳答案 来自 Microsoft 文
我是一名优秀的程序员,十分优秀!