首页 > 其他分享 >【译】VisualStudio.Extensibility 17.10:用 Diagnostics Explorer 调试您的扩展

【译】VisualStudio.Extensibility 17.10:用 Diagnostics Explorer 调试您的扩展

时间:2024-06-24 09:02:16浏览次数:26  
标签:Explorer 扩展 17.10 Diagnostics VisualStudio 我们 Extensibility

  想象一下,创建的扩展比以往任何时候都运行得更快、更流畅!如果您最近还没有跟上,我们一直在努力改进 VisualStudio. Extensibility SDK。VisualStudio. Extensibility 帮助您构建在主 IDE 进程之外运行的扩展,以提高性能和可靠性。它还提供了一个时尚而直观的基于 .NET 8 的 API 和全面且维护良好的文档,可以帮助您开发出色的扩展。

  这个17.10版本建立在我们以前的版本之上,它带来了全新的调试体验,使您更容易让您的扩展以您期望的方式运行。我们还增强了远程UI特性,添加了提示用户的新方法,并继续向项目查询 API 添加功能。

  请访问 https://aka.ms/VisualStudio.Extensibility 获取最新的文档和安装说明。我们鼓励您通过 GitHub 仓库的问题跟踪报告错误并建议功能,在那里您还可以找到扩展示例来帮助您开始。

VisualStudio.Extensibility 有什么新功能?

  您想要比以前更快速、更容易地开发和调试扩展吗?我们的17.10版本增加了以下功能来帮助您做到这一点:

  - 调试您的扩展使用我们新的 Diagnostics Explorer

  - 在 UI 中利用 XAML 资源

  - 让您的扩展用户选择文件或目录

  - 使用改进的查询 API 跟踪项目更改

调试您的扩展使用我们新的 Diagnostics Explorer

  我们已经创建了一个强大的新工具来调试您的扩展,叫做 VisualStudio.Extensibility Diagnostics Explorer,可以在 Visual Studio Marketplace 中找到它。有了它,您就能像 Visual Studio 那样看到扩展,从而确保您正确地配置了您的扩展。

  这个工具本身是作为进程内的 VisualStudio. Extensibility 扩展编写的。可以帮助您回答诸如“为什么我的命令没有显示在我期望它在 IDE 中的位置?”或“为什么我的扩展没有在我期望的时候被激活?”

检查配置

  VisualStudio.Extensibility 通过消除手动维护单独的元数据文件的需要,已经使您更容易配置扩展。现在,我们在此基础上构建了 Diagnostics Explorer,它可以让您准确地看到 Visual Studio 发现了哪些扩展和组件,以及每个发现项的配置。

  例如,如果您没有在 IDE 中看到命令,您可以使用命令选项卡 Diagnostics Explorer 查看已贡献给 Visual Studio 的任何命令。如果它没有出现在列表中,这是一个提示,需要再次检查您的配置以确保它被发现。如果它存在,但未启用或不可见,则可能需要检查激活约束。如果它被标记为启用和可见,您可以使用下拉菜单来查看命令放置,以确保您已经正确地放置了它。

  使用 Commands 选项卡,您可以检查命令、命令集、组、菜单和工具栏、命令位置和动态命令锚点。其他选项卡允许您检查组件的其他功能区域,包括工具窗口、文档类型、文本视图等。当我们在未来的版本中添加功能时,您将能够在 Diagnostics Explorer 中检查任何新组件。

查看实时事件日志

  我们知道,像您这样的扩展开发人员有时开发的扩展可能需要处理整个 IDE 中的事件,例如正在执行的命令,正在打开的工具窗口或正在创建的 TextView,所以我们添加了一个实时事件查看器,使您能够实时观察这些事件及其属性:

创建更好的激活约束

  Diagnostics Explorer 中的 Activation Constraints 选项卡为您提供了创建激活约束时每个可用值的当前状态。使用此选项卡,您可以使 IDE 进入您想要用于激活的状态(例如构建项目或打开 markdown 文件),然后您可以检查每个可用表达式的值,以帮助您创建约束。

  例如,假设您希望一个命令仅在编辑器中打开 C# 文件时才可见。使用 Diagnostics Explorer,您可以打开一个 C# 文件,使用 Activation Constraints 选项卡来帮助您确定需要哪些表达式来创建约束:

EnabledWhen = ActivationConstraint.ClientContext(ClientContextKey.Shell.ActiveEditorContentType, "CSharp").

在 UI 中利用 XAML 资源

  XAML 资源允许您定义可以在整个项目中使用的对象,如颜色、笔刷或样式,从而加速UI开发。通过这个版本的 VisualStudio. Extensibility:我们正在添加对 XAML 资源的支持,以帮助您为扩展开发出色的UI!

  与我们的其他远程UI功能(如UI控件)一致,您可以将任何带有 ResourceDictionaries 的XAML文件定义为嵌入在 .csproj 文件中的资源:

<ItemGroup>
    <EmbeddedResource Include="\XamlResources.*xaml" />
    <Page Remove="XamlResources.*xaml" />
</ItemGroup>

  一旦定义,很容易将您的资源包含在其他组件中,以便它们可以在整个项目的 XAML 中被引用:

ResourceDictionaries.AddEmbeddedResource("XamlResources.xaml")

  您甚至可以本地化您的资源:查看 Modal Dialog 示例获取更多信息,并让我们知道您的想法!

让您的扩展用户选择文件或目录

  在我们之前对用户提示和自定义对话框的支持的基础上,我们增加了从扩展中显示文件和目录选择器提示的能力。例如,您可以使用 ShowOpenFileDialogAsync() 方法来提示用户选择一个文件来打开:

VisualStudioExtensibility.Shell().ShowOpenFileDialogAsync(options, cancellationToken);

  使用新的 API,您可以提示用户:

  - 选择一个文件打开

  - 选择要打开一个或多个文件

  - 选择单个文件来另存为

  - 选择要打开的目录

  与往常一样,如果有其他类型的用户提示对您的扩展很重要,请通过我们的问题跟踪告诉我们。

使用改进的查询 API 跟踪项目更改

  我们的 17.10 版本为项目查询 API 添加了三个新特性。

跟踪查询结果的更改

  TrackUpdatesAsync() 方法可以在项目系统查询中使用,以创建一个 IObserver 对象来跟踪您的查询中项目或解决方案状态的变化。例如,如果您想跟踪项目中文件的更新时间,您可以使用:

var query = await myProject
    .Files
    .With(f => f.FileName)
    .TrackUpdatesAsync(new TrackerObserver(), CancellationToken.None);

  在这个例子中,TrackerObserver 实现了 IObserver<IQueryTrackUpdates<IFileSnapshot>>,所以您可以使用您自己的自定义逻辑来处理更新事件。

查询项目规则

  项目查询 API 中的每个项目现在都包含一个 RulesResults 特性,其中包括规则名称和一个项列表。您可以通过调用指定配置的 RuleResultsByName() 来访问这些规则。

var results = await querySpace
    .Projects
    .With(p => p.Path)
    .With(p => p.ActiveConfigurations
        .With(c => c.RuleResultsByRuleName("CompilerCommandLineArgs")
            .With(r => r.RuleName)
            .With(r => r.Items
                .With(i => i.Name))))
        .ExecuteQueryAsync();

跳过查询结果

  我们添加了 Skip() 方法,使您能够跳过查询中的结果。

var projects = await queryableSpace.Projects
    .With(proj => proj.Name)
    .Skip(1)
    .ExecuteQueryAsync();

  这里,跳过第一个项目,返回其余的项目。

如果没有您的参与我们做不到这些!

  我们需要您的帮助,因为我们将继续开发 VisualStudio.Extensibility!请尝试这个预览版,让我们知道您的想法。查看文档,浏览代码示例,并构建您的第一个扩展。您可以通过我们的问题跟踪发送反馈、报告问题或功能需求。

  您还可以在我们的 VisualStudio. Extensibility GitHub repo 中找到有关突破性更改和已知问题的信息。

  我们正在优先考虑扩展程序要求的功能,所以请尝试一下 VisualStudio. Extensibility,并与我们分享您的想法!

 

原文链接:https://devblogs.microsoft.com/visualstudio/visualstudio-extensibility-17-10/

 

标签:Explorer,扩展,17.10,Diagnostics,VisualStudio,我们,Extensibility
From: https://www.cnblogs.com/MeteorSeed/p/18247891

相关文章

  • explorer 资源管理器 win10 剪切大量文件 最终99%卡死好几个小时
    用ProcessExplorerthreads栏可以看到shcore.dll占用最多不过光看这个dll没啥用,这个dll有很多功能再点stack看调用栈ntdll.dll!NtReadFile+0x14KERNELBASE.dll!ReadFile+0x73windows.storage.dll!SHGetKnownFolderItem+0x1a6coml2.dll!StgOpenStorageOnILockBytes+0x9929c......
  • Visual Studio 2022 v17.10 发布
    VisualStudio2022版本17.9 现已发布,带来了IDE各个领域的一系列性能增强。一些显着的改进包括:更快的WindowsFormsdesigner加载、更快的Razor着色、更快的解决方案加载以及减少的DLL开销。WindowsFormsdesigner加载速度此前有反馈称,在针对.NETC......
  • 【译】Visual Studio 17.10 发布了新版扩展管理器
    我们将更新的扩展管理器带给所有用户!在过去的一年里,我们已经将更新后的扩展管理器作为可选的预览功能提供,并一直期待您的反馈。基于您令人难以置信的反馈,我们现在准备从VisualStudio17.10开始提供新的扩展管理器作为默认预览功能。我们已将基本功能简化为现代风格UI,以......
  • [4DIAC] 应用开发界面详细介绍——【1.System Explorer】
    以下内容均为个人经验,欢迎交流。——旅客一、概要    4DIACIDE是在大名鼎鼎的EclipseIDE上扩展而来的,在4DIAC官网也提供了相应的IDE源码,可以尝试自己加入一些个人元素,例如更换背景、增加用户登录、增加外链按钮等等,这对于开发自己的控制系统或是OEM成自己......
  • Process Explorer工具,帮助他们更好地管理和监控Windows系统中的进程和系统资源;掌握更
    初级应用ProcessExplorer的大纲:1.ProcessExplorer简介简要介绍ProcessExplorer工具的作用和用途。解释为什么ProcessExplorer是管理Windows系统进程的有用工具。2.工具界面导览展示ProcessExplorer的主要界面和功能区域。解释各个部分的作用和功能。3.进程查看......
  • visual studio IDE 17.10版本 折叠区域高亮问题
    最近vs更新到了17.10版本发现折叠的区域会高亮效果如下 可以看到折叠的区域会呈现一种高亮显示我个人是觉得会分散我注意力下面是关掉的操作 把红框改成自动(ps:可以打中文"可"快速定位到"可折叠区域")这样改完后效果如下 ......
  • offsetExplorer3.0 如何连接加SASL认证的zookeeper、kafka
    offsetExplorer3.0连接速度与查看topic、consumers查询速度显著提升。建议使用offsetExplorer3.0代替旧版offsetExploreroffsetExplorer3.0下载地址:https://www.kafkatool.com/download.html配置方式如下:注意:zookeeper和kafka的地址、端口,可以二选一,只配置一个,也可以全配置。......
  • Kafka消息可视化工具:Offset Explorer(原名kafka Tool)的使用方法【转】
    OffsetExplorer(以前称为KafkaTool)是一个用于管理和使用ApacheKafka®集群的GUI应用程序。它提供了一个直观的界面,允许用户快速查看Kafka集群中的对象以及集群主题中存储的消息。它包含面向开发人员和管理员的功能。一些主要功能包括:快速查看所有Kafka集群,包括其代理,主题和......
  • 【译】宣布在 Visual Studio 17.10 预览2中为 ARM64 架构提供 SSDT
    我们很高兴地宣布在ARM64中为VisualStudio推出SQLServerDataTools(SSDT)。这个增强是在令人兴奋的17.10预览版2中发布的。arm64上VisualStudio的SSDT版本为arm64上的VisualStudio添加了SQL开发功能。这个最新的开发带来了许多专为增强您在ARM64设备上......
  • Delphi10.3自带FireDAC Explorer工具
     写SQL语句 键盘光标一定要在最后,或者倒数,才会出现绿箭头执行CREATETABLEMyTable(姓名string(10),语文Integer,数学Integer,英语Integer)  可以把SQL窗口拖到外面显示 ......