Visual Studio 2022 预览版1发布|自动完成代码|更多扩展

Visual Studio 2022 预览版1发布|自动完成代码|更多扩展

我们此预览版的主要目标是测试和调整新 64 位平台的可扩展性!借助新的 64 位平台,Visual Studio 现在能够扩展以利用您必须提高 Visual Studio 的可靠性的所有系统资源,尤其是在处理复杂解决方案或长时间使用 Visual Studio 时。64 位转换工作影响 Visual Studio 的每个部分,因此范围比我们通常的预览要大得多。

我们知道您期望 Visual Studio 的质量、稳定性和可扩展性。为了完全透明,我们实现目标的最快方法是让像您这样的真正的开发人员告诉我们可以改进的地方。我们真的很关注每一个错误报告、建议和投票!您可以通过报告问题从 Visual Studio 内部提交。

Visual Studio 2022 预览版可以与早期版本的 Visual Studio 并行安装,在所有三个版本(社区版、专业版和企业版)中均可用,并且可以免费使用。

什么来了

由于预览版 1 的大部分升级都与 64 位支持有关,因此我们将从预览版 2 开始发布一系列激动人心的新功能和性能改进。您可以在Visual Studio 路线图上阅读有关这些即将推出的功能的所有信息。您可以立即尝试的一项新功能是IntelliCode更新——您可以自动完成代码,一次最多可以完成一整行。

在将 Visual Studio 迁移到 64 位方面仍有一些工作要做,Visual Studio 2019 中的少量功能未包含在 Visual Studio 2022 预览版 1 中。您可以在发行说明中找到这些即将推出的功能的列表。

在 Visual Studio 2022 预览版期间,我们构建您使用和喜爱的扩展的合作伙伴将努力更新他们的扩展。虽然他们这样做了,但他们的扩展不会立即在 Visual Studio 2022 中可用。

Visual Studio 2022 for Mac 的第一个预览版即将推出,让您首先了解 Visual Studio 的全新现代 macOS UI。在我们认为它已准备好接受开发人员反馈之前,我们还有一些工作要做,我们将在Visual Studio 博客上为您提供最新进展。

Visual Studio 2022 规划路线图

本路线图介绍了在 Visual Studio 2022 中针对日历年2021的主要工作。 Visual Studio 2022 有三个关键主题:

  • 个人和团队工作效率: 我们希望为开发人员和团队提供惊人的规模和性能、受信任的安全工具链以及更易于访问的个性化环境。
  • 新式开发: 我们正在构建用于更快开发新式应用的工具。
  • 不断创新: 我们正在投资改进协作、可操作诊断和代码帮助。

Visual Studio 2022 将是 Visual Studio 的第一个64位版本。 除了更多内存访问提供的速度和性能优势之外,Visual Studio 还引入了 UI 增强功能、更多个性化选项以及对开发人员进行的持续关注。 升级到 Visual Studio 2022 应该是一种不太摩擦的体验,不需要更改代码。 你仍可以在 Visual Studio 2022 中生成32位和所有现有应用程序。

有关 Visual Studio 2019 路线图,请参阅 Visual studio 2019 路线图

有关我们的 Visual Studio 2022 远景的详细信息,请阅读我们的 Visual studio 2022 公告博客

常规


我们将主要 devenv.exe 过程从32位移动到64,从而提高开发人员的工作效率。 这将有效地消除内存不足的错误,尤其是对于大型的复杂解决方案。 我们引入了用户反馈,以不断创新开发人员如何加载、搜索和与代码交互。 我们正在改进新的项目创建体验。

Visual Studio 2022 比以往更易于访问。 我们将使可访问性相关的选项更易发现,而音频提示可用性正在扩展。 我们正在集成 Accessibility Insights 引擎,使开发人员能够生成可访问的新式应用程序。 开发人员将在 2022 年Visual Studio个性化设置选项,并改进跨多台计算机同步设置的能力。 我们还将更新图标、主题和字体,以更新新式体验。

有关详细信息,请参阅 Visual Studio上的 开发者社区。

诊断

2022 Visual Studio中的诊断侧重于创新我们一流的诊断体验。 我们正在改进可拖动的断点,添加依赖断点和强制运行功能。 我们正在改进故障转储、内存转储和内存压力分析的分析工具。 最后,我们将添加跨平台支持,以在 ARM64 设备上调试 C++ 和 .NET 代码。

有关调试的详细信息,请参阅调试开发者社区。

有关分析的详细信息,请参阅分析开发者社区。

编辑器

2022 Visual Studio编辑器将具有内置的拼写检查器,可帮助你更准确地编写代码,减少错误。 我们正在创新代码可读性,并添加新的导航方式,例如多点式编辑和”Camel Camelp”导航。 屏幕阅读器的用户将享受有关代码问题的更好反馈。

有关详细信息,请参阅 Visual Studio 上的 开发者社区编辑器。

扩展性

扩展在自定义服务体验方面Visual Studio角色。 我们正在使基本扩展更加可靠和安全。 我们还在改进扩展的开发、迁移和发布体验。

IntelliCode

IntelliCode 团队将继续专注于预测你的下一步。 Visual Studio 2022 年将引入更大的完成项,并帮助你在正确的时间在正确的位置采取正确的操作。

有关详细信息,请参阅上的Intellicode 开发者社区。

NuGet

NuGet 团队重点介绍为 .NET 6 提供支持、保护软件供应链,并使每个开发人员及其团队能够通过具有优秀基础的统一、高效且喜爱的包管理器来实现更多。

有关详细信息,请参阅 开发人员社区中的 NuGet。

设置和安装

设置和安装团队的重点是使企业能够在托管企业环境中轻松部署更新,从而确保企业安全。 我们正在使企业使用多个布局文件夹来更新客户端实例,使用多个受支持的基线,并在通道之间移动其安装。 还添加了一种功能,使用户能够在更新失败后将 Visual Studio 回滚到工作环境中。

有关详细信息,请参阅 开发人员社区上的 Visual Studio 设置和安装

版本控制

Visual Studio 2022 将继续在集成源代码管理工具上创新。 我们将支持更复杂的 Git 工作流,例如同时激活多个 Git 存储库,从而提高工作效率。 开发人员将能够暂存代码的各个行或 hunks,并查看改进的差异和详细信息。 我们还将改进 GitHub 和 Azure DevOps 集成,使功能更接近开发人员工作流。

有关详细信息,请参阅 开发人员社区上的 Visual Studio Git 体验

C++


C + + 团队通过语言一致性、诊断和安全重点介绍了工作负荷创新。 Visual Studio 2022 将添加对 c + + 20 语言功能的支持,这些功能可简化大型代码库的管理。 我们要集成对 CMake、Linux 和 WSL 的支持,以便更轻松地创建和调试跨平台应用程序。

有关详细信息,请参阅 开发人员社区中的 c + +

.NET


.NET 团队重点介绍新式应用开发体验,改进 .NET 5 支持并添加 .NET 6 支持。 同时,我们还将重点介绍内置的代码帮助。 最后,我们将致力于利用 .NET 5 Windows 窗体的完整设计器体验。

有关详细信息,请参阅.NET on 开发者社区。

容器工具

容器工具团队侧重于改进 .NET 开发人员生成容器化应用程序的体验。 我们的重点是提高使用”容器”工具窗口诊断容器化应用的能力。

有关与 .NET 相关的其他路线图,请参阅:

Web 工具


Web 工具团队专注于使用 Azure 开发人员服务改进 .NET 中的 Web 开发过程。 我们正在改进依赖项配置、扩展用于发布和优化存储的 Azure 托管选项。

有关详细信息,请参阅:

XAML 和 Xamarin


XAML 和 Xamarin 团队使开发人员能够使用 MAUI 生成新式应用程序。 我们正在通过热重载提高工作效率,使开发人员能够使用 .NET 6 编写跨平台应用程序。

有关详细信息,请参阅:

更新 Visual Studio 2022 的 Visual Studio 扩展

您可以按照本指南更新您的扩展以使用 Visual Studio 2022 预览版。Visual Studio 2022 Preview 是一个 64 位应用程序,并在 VS SDK 中引入了一些重大更改。本指南将引导您完成使您的扩展与 Visual Studio 2022 的当前预览版一起使用所需的步骤,以便您的扩展可以在 Visual Studio 2022 达到 GA 之前准备好供用户安装。

安装

Visual Studio 2022 预览版下载安装 Visual Studio 2022 预览版。

用 .NET 语言编写的扩展

针对托管扩展的 Visual Studio 2022 的 VS SDK专门在 NuGet 上运行:

必须使用“Any CPU”或“x64”平台编译扩展。“x86”平台与 Visual Studio 2022 的 64 位进程不兼容。

用 C++ 编写的扩展

与往常一样,使用 C++ 编译的用于扩展的 VS SDK 可与已安装的 Visual Studio SDK 一起使用。

必须专门针对 Visual Studio 2022 SDK 和 amd64 编译扩展。

将扩展更新到 Visual Studio 2022

带有运行代码的扩展

具有运行代码的扩展必须专门针对 Visual Studio 2022 进行编译。Visual Studio 2022 不会加载任何不专门针对 Visual Studio 2022 的扩展。

了解如何将 Visual Studio 2022 之前的扩展迁移到 Visual Studio 2022:

  1. 使您的项目现代化
  2. 将您的源代码重构为共享项目,以允许面向 Visual Studio 2022 及更早版本。
  3. 添加一个面向 Visual Studio 2022 的 VSIX 项目,以及我们的包/程序集重映射表
  4. 进行必要的代码调整
  5. 测试您的 Visual Studio 2022 扩展
  6. 发布您的 Visual Studio 2022 扩展
无需运行代码的扩展

不包含任何正在运行的代码(例如,项目/项模板)扩展并不需要按照上面的步骤包括生产两种不同VSIXs的。

相反,应该修改一个 VSIX,使其source.extension.vsixmanifest文件声明两个安装目标,如下所示:

<Installation>
   <InstallationTarget Id="Microsoft.VisualStudio.Community" Version="[15.0,17.0)">
      <ProductArchitecture>x86</ProductArchitecture>
   </InstallationTarget>
   <InstallationTarget Id="Microsoft.VisualStudio.Community" Version="[17.0,18.0)">
      <ProductArchitecture>amd64</ProductArchitecture>
   </InstallationTarget>
</Installation>

您可以跳过本文中有关使用共享项目和多个 VSIX 的步骤。您可以继续测试

 备注:

如果您正在使用 Visual Studio 2022 预览版创作新的Visual Studio 扩展,并且想要(也)面向 Visual Studio 2019 或更早版本,请查看本指南

MSBuild 任务

如果您创作 MSBuild 任务,请注意,在 Visual Studio 2022 中,它们更有可能在 64 位 MSBuild.exe 进程中加载。如果您的任务需要运行 32 位进程,请参阅此 MSBuild 文档以确保 MSBuild 知道在 32 位进程中加载您的任务。

使您的 VSIX 项目现代化

在向您的扩展添加 Visual Studio 2022 支持之前,我们强烈建议您花点时间清理现有项目并使其现代化,然后再进一步,包括:

  1. 从packages.config 迁移到PackageReference.
  2. 用 PackageReference 项替换任何直接程序集 VS SDK 程序集引用。
-<Reference Include="Microsoft.VisualStudio.OLE.Interop" />
+<PackageReference Include="Microsoft.VisualStudio.OLE.Interop" Version="..." />

提示

您可以只用一个PackageReference替换许多程序集引用到我们的元包:

-<Reference Include="Microsoft.VisualStudio.OLE.Interop" />
-<Reference Include="Microsoft.VisualStudio.Interop" />
-<Reference Include="Microsoft.VisualStudio.Interop.8.0" />
+<PackageReference Include="Microsoft.VisualStudio.Sdk" >Version="..." />

请务必选择与您的目标 Visual Studio 的最低版本匹配的包版本。

一些并非 VS SDK 独有的程序集(例如,Newtonsoft.Json.dll)<Reference Include="Newtonsoft.Json" />在 Visual Studio 2022 之前可能已通过简单引用发现,但在 Visual Studio 2022 中需要包引用,因为在 Visual Studio 2022 中,我们删除了MSBuild 的默认程序集搜索路径中的一些 Visual Studio 运行时和 SDK 目录。

在从直接程序集引用切换到 NuGet 包引用时,由于 NuGet 会自动安装依赖项的传递闭包,您可能会选择其他程序集引用和分析器包。这通常没问题,但可能会导致在构建期间标记额外的警告。解决这些警告并尽可能多地解决,并考虑禁止使用代码中#pragma warning disable <id>区域无法解决的那些警告。

使用共享项目进行多目标

共享项目是 Visual Studio 2015 中引入的一种项目类型。Visual Studio 中的共享项目允许在多个项目之间共享源代码文件,并使用条件编译符号和唯一的引用集进行不同的构建。

由于 Visual Studio 2022 需要一组不同于所有先前 VS 版本的参考程序集,我们的指导是使用共享项目方便地将您的扩展多定位到 Visual Studio 2022 和 Visual Studio 2022(及更高版本)之前的版本,为您提供代码共享,但不同的参考。

在 Visual Studio 扩展的上下文中,可以有一个用于 Visual Studio 2022 及更高版本的 VSIX 项目和一个用于 Visual Studio 2019 及更早版本的 VSIX 项目。这些项目中的每一个都将仅包含source.extension.vsixmanifest对 16.x SDK 或 17.x SDK 的包引用。这些 VSIX 项目还将具有对新共享项目的共享项目引用,该项目将托管可在两个 VS 版本之间共享的所有源代码。

作为起点,对于本文档,我们假设您已经有一个面向 Visual Studio 2019 的 VSIX 项目,并且您希望您的扩展在 Visual Studio 2022 上运行。

所有这些步骤都可以使用 Visual Studio 2019 完成。

  1. 如果您还没有这样做,请将您的项目现代化以简化此更新过程中稍后的步骤。
  2. 为每个引用 VS SDK 的现有项目向您的解决方案添加一个新的共享项目。
Visual Studio 2022 预览版1发布|自动完成代码|更多扩展
Visual Studio 2022 预览版1发布|自动完成代码|更多扩展

3.将每个 VS SDK 引用项目的引用添加到其共享项目对应项。

Visual Studio 2022 预览版1发布|自动完成代码|更多扩展

4.将所有源代码(包括 .cs、.resx)从每个 VS SDK 引用项目移动到其共享项目副本。将该source.extension.vsixmanifest文件保留在 VSIX 项目中。

Visual Studio 2022 预览版1发布|自动完成代码|更多扩展

5.元数据文件(发行说明、许可证、图标等)和 VSCT 文件应移动到共享目录并作为链接文件添加到 VSIX 项目。

Visual Studio 2022 预览版1发布|自动完成代码|更多扩展

对于元数据文件,将 BuildAction 设置为Content并将 VSIX 中的 Include 设置为true.

Visual Studio 2022 预览版1发布|自动完成代码|更多扩展

对于 VSCT 文件,将 BuildAction 设置为VSCTCompile不包含在 VSIX 中。Visual Studio 可能会抱怨不支持此设置,但您可以通过卸载项目并更改Content为手动更改构建操作VSCTCompile

-<Content Include="..\SharedFiles\VSIXProject1Package.vsct">
-  <Link>VSIXProject1Package.vsct</Link>
-</Content>
+<VSCTCompile Include="..\SharedFiles\VSIXProject1Package.vsct">
+  <Link>VSIXProject1Package.vsct</Link>
+  <ResourceName>Menus.ctmenu</ResourceName>
+</VSCTCompile>
Visual Studio 2022 预览版1发布|自动完成代码|更多扩展

6.构建您的项目以确认您没有引入任何新错误。

您的项目现在已准备好添加 Visual Studio 2022 支持。

添加 Visual Studio 2022 目标

本文档假设您已完成将Visual Studio 扩展分解为共享项目的步骤

使用以下步骤继续向您的扩展添加 Visual Studio 2022 支持,这些步骤可以使用 Visual Studio 2019 完成:

  1. 将新的 VSIX 项目添加到您的解决方案。这将是面向 Visual Studio 2022 的项目。删除模板附带的所有源代码,但保留source.extension.vsixmanifest文件.
  2. 在新的 VSIX 项目上,添加对面向 Visual Studio 2019 的 VSIX 引用的同一共享项目的共享项目引用。
Visual Studio 2022 预览版1发布|自动完成代码|更多扩展

3.验证新的 VSIX 项目是否正确构建。您可能需要添加引用以匹配您的原始 VSIX 项目以解决任何编译器错误。

4.对于托管 VS 扩展,使用 NuGet 包管理器或直接编辑项目文件将包引用从 16.x(或更早版本)更新到面向 Visual Studio 2022 的项目文件中的 17.x 包版本:

-<PackageReference Include="Microsoft.VisualStudio.SDK" Version="16.0.206" />
+<PackageReference Include="Microsoft.VisualStudio.SDK" Version="17.0.0-preview.1" />
-<PackageReference Include="Microsoft.VSSDK.BuildTools" Version="16.10.32" />
+<PackageReference Include="Microsoft.VSSDK.BuildTools" Version="17.0.63-preview.1" />

您将使用实际可从 nuget.org 获得的版本。之前使用的只是为了演示目的。

在许多情况下,包 ID 已更改。有关 Visual Studio 2022 中的更改列表,请参阅包/程序集映射表

用 C++ 编写的扩展还没有可用的 SDK 来编译。

5.对于 C++ 项目,它们必须针对 amd64 进行编译。对于托管扩展,请考虑将您的项目从为 Any CPU 构建更改为面向x64,以反映在 Visual Studio 2022 中您的扩展始终在 64 位进程中加载。Any CPU也很好,但如果您引用任何 x64-only 本机二进制文件,可能会产生警告。

您的扩展可能对本机模块的任何依赖都必须从 x86 映像更新为 amd64 映像。

6.编辑您的source.extension.vsixmanifest文件以反映面向 Visual Studio 2022 的目标。设置标记以反映 Visual Studio 2022 并指示 amd64 负载:

<InstallationTarget Id="Microsoft.VisualStudio.Community" Version="[17.0,18.0)">
   <ProductArchitecture>amd64</ProductArchitecture>
</InstallationTarget>

在 Visual Studio 2019 中,此文件的设计器不会公开新ProductArchitecture元素,因此需要使用 xml 编辑器完成此更改,您可以通过“解决方案资源管理器”中的“打开方式”命令访问该编辑

这个ProductArchitecture元素很关键。如果没有它,Visual Studio 2022 将不会安装你的扩展。

元素价值描述
产品架构X86、AMD64此 VSIX 支持的平台。不区分大小写。每个元素一个平台,每个 InstallTarget 一个元素。对于低于 17.0 的产品版本,默认值为 x86,可以省略。对于 17.0 及更高版本的产品,此元素是必需的,并且没有默认值。对于 Visual Studio 2022,此元素的唯一有效内容是“amd64”。

7.在 source.extension.vsixmanifest 中进行任何其他必要的调整,以匹配针对 Visual Studio 2019(如果有)的调整。Identity清单元素中VSIX 的 ID对于两个扩展必须相同,这一点至关重要。

此时,您有一个面向 Visual Studio 2022 的扩展 VSIX。您应该构建面向 Visual Studio 2022 的 VSIX 项目,并解决出现的任何构建中断。如果在面向 Visual Studio 2022 的 VSIX 项目中没有构建中断,恭喜:您已准备好进行测试!

处理重大 API 更改

Visual Studio 2022 中存在重大 API 更改,可能需要更改您的代码从它在先前版本上运行时开始。查看该文档以获取有关如何更新每个代码的提示。

在调整代码时,我们建议您使用条件编译,以便您的代码可以在添加对 Visual Studio 2022 的支持的同时继续支持 Visual Studio 2022 之前的版本。

获得面向 Visual Studio 2022 的扩展构建后,继续测试.

Visual Studio 2022 预览版1发布|自动完成代码|更多扩展

请务必为所有配置设置编译符号,因为默认情况下,您输入的符号可能仅适用于一种配置。

C#技术

然后,您可以将该符号用作预处理器指令 ( #if),如以下代码所示。然后,您可以分叉您的代码以处理不同 Visual Studio 版本之间的重大更改。

Guid myGuid = new Guid("{633FBA02-719B-40E7-96BF-0899767CD104}");
    uint myFlags = 0;
    IVsShell shell = await AsyncServiceProvider.GlobalProvider.GetServiceAsync<SVsShell, IVsShell>();
#if Visual Studio 2019
    shell.LoadUILibrary(myGuid, myFlags, out uint ptrLib);
#else
    shell.LoadUILibrary(myGuid, myFlags, out IntPtr ptrLib);
#endif

在某些情况下,您可以简单地使用var来避免命名类型,从而避免对#if区域的需要。上面的代码段也可以写成:

Guid myGuid = new Guid("{633FBA02-719B-40E7-96BF-0899767CD104}");
    uint myFlags = 0;
    IVsShell shell = await AsyncServiceProvider.GlobalProvider.GetServiceAsync<SVsShell, IVsShell>();
    shell.LoadUILibrary(myGuid, myFlags, out var ptrLib);

使用#if语法时,请注意如何使用下面显示的文档中的语言服务上下文下拉菜单来更改语法突出显示和语言服务提供的其他帮助,以将注意力集中在我们扩展的一个目标 Visual Studio 版本与另一个版本上。

Visual Studio 2022 预览版1发布|自动完成代码|更多扩展

XAML 共享技术

XAML 没有预处理器来允许基于预处理器符号自定义内容。可能需要复制和维护两个 XAML 页面,其中它们的内容在 Visual Studio 2022 和更早版本之间必须不同。

但是,在某些情况下,通过删除引用程序集的命名空间,对存在于 Visual Studio 2022 和更早版本的不同程序集中的类型的引用可能仍可在一个 XAML 文件中表示:

-xmlns:vsui="clr-namespace:Microsoft.VisualStudio.PlatformUI;assembly=Microsoft.VisualStudio.Shell.14.0"
-Value="{DynamicResource {x:Static vsui:TreeViewColors.SelectedItemActiveBrushKey}}"
+Value="{DynamicResource TreeViewColors.SelectedItemActiveBrushKey}"

测试您的扩展

要测试面向 Visual Studio 2022 的扩展,您需要安装 Visual Studio 2022 预览版。您将无法在 Visual Studio 2022 预览版之前的 Visual Studio 版本上运行 64 位扩展。

你可以使用 Visual Studio 2022 Preview 来构建和测试你的扩展,无论它们是针对 Visual Studio 2022 还是更早版本。从 Visual Studio 2022 启动 VSIX 项目时,将启动 Visual Studio 的实验性实例。

我们强烈建议您使用您希望扩展支持的每个 Visual Studio 版本进行测试。

现在您已准备好发布您的扩展程序

发布您的扩展

太好了,您已将 Visual Studio 2022 目标添加到您的扩展并对其进行了测试。现在您已准备好发布扩展以供全世界欣赏。

视觉工作室市场

将扩展发布到Visual Studio Marketplace是让新用户找到并安装扩展的好方法。无论您的扩展专门针对 Visual Studio 2022 还是针对较旧的 VS 版本,Marketplace 都可以为您提供支持。

将来,Marketplace 将允许您将多个 VSIX 上传到一个 Marketplace 列表,从而允许您上传面向 Visual Studio 2022 的 VSIX 和 Visual Studio 2022 之前的 VSIX。使用 VS 扩展管理器时,您的用户将自动获得适合他们安装的 VS 版本的 VSIX。

对于 Visual Studio 2022 的预览版,市场将仅支持每个市场列表的单个 VSIX 文件。虽然 Visual Studio 2022 处于预览阶段,但我们鼓励您为您的扩展创建单独的仅 Visual Studio 2022 市场列表。这样你就可以根据需要迭代你的 Visual Studio 2022 扩展,而不会影响你的客户使用早期版本的 Visual Studio。您还可以将扩展标记为“预览”,以设置它可能比主流扩展更不可靠的预期,即使这种不可靠性的来源是 Visual Studio 2022。

自定义安装程序

如果构建 MSI/EXE 来安装扩展并生成 vsixinstaller.exe 来安装(部分)扩展,请知道 Visual Studio 2022 中的 VSIX 安装程序已更新。开发人员将需要使用 Visual Studio 2022 随附的 VSIX 安装程序版本来安装 Visual Studio 2022 的扩展。Visual Studio 2022 中的 VSIX 安装程序还将安装适用的扩展,这些扩展针对与之前版本的 Visual Studio 并行安装同一台机器上的 Visual Studio 2022。

网络共享

您可以通过 LAN 或任何其他方式共享您的分机。如果您面向 Visual Studio 2022 和 Visual Studio 2022 之前的版本,则需要单独共享多个 VSIX 并为其指定文件名(或将它们放在唯一的文件夹中),以帮助您的用户根据 Visual Studio 版本了解要安装哪个 VSIX他们已经安装。

其他注意事项

依赖关系

如果您的 VSIX 通过<dependency>元素将另一个 VSIX 指定为依赖项 ,则每个引用的 VSIX 都需要安装在与您的 VSIX 相同的目标和产品体系结构中。如果从属 VSIX 不支持 Visual Studio 的目标安装,则您的 VSIX 将失败。依赖的 VSIX 可以支持比你更多的目标和架构,但不会更少。此限制意味着具有依赖项的 VSIX 的部署和分发方法应反映其依赖项的部署和分发方法。

问答

:我的扩展不需要任何互操作更改,因为它只提供数据(例如模板),我可以创建一个也包含 Visual Studio 2022 的扩展吗?

:是的!有关更多信息,请参阅无需运行代码的扩展

:NuGet 依赖项引入了旧的互操作程序集并导致类冲突。

:将以下行添加到您的 .csproj 文件以避免重复程序集:XML复制

    <PackageReference Include="<Name of offending assembly>" ExcludeAssets="compile" PrivateAssets="all" />

这将防止包引用从其他依赖项导入旧版本的程序集。

:将源文件切换到共享项目后,我的命令和热键在 Visual Studio 中不起作用。

:Image Optimizer 示例的步骤 2.4显示了如何将 VSCT 文件添加为链接项目,以便将它们编译到您的 VSCT 文件中。

下一步

按照分步示例ImageOptimizer 进行操作,其中包含指向每个步骤的项目和代码更改的链接。

使用条件编译符号

如果您希望对 Visual Studio 2022 和更早版本使用相同的源代码,甚至是相同的文件,您可能需要使用条件编译,以便您可以分叉您的代码以适应重大更改。条件编译是 C#、Visual Basic 和 C++ 语言的一项功能,可用于共享大多数代码,同时在特定位置容纳不同的 API。

有关使用预处理器指令和条件编译符号的更多信息,请参见 Microsoft 文档#if 预处理器指令

以早期 Visual Studio 版本为目标的项目需要一个条件编译符号,然后可以使用它来派生代码以使用不同的 API。可以在项目属性页面设置条件编译符号,如下图所示:

Visual Studio 2022 预览版1下载地址

Visual Studio 2022 预览版1发布|自动完成代码|更多扩展

目前仅提供英文版本

①官网下载:

Visual Studio Community

Visual Studio Community 是免费和功能全面的 IDE,面向学生、开源贡献者和刚刚开始使用 .NET 的个人开发人员。下载预览版

Visual Studio Professional

Visual Studio Professional 是一款功能强大而全面的 IDE,适用于开发人员为任何平台设计、构建和部署创新应用程序。下载预览版

Visual Studio Enterprise

Visual Studio Enterprise 是一款功能强大且全面的 IDE,适用于开发人员为任何平台(包括 Microsoft 堆栈)设计、构建、测试和部署复杂应用程序。下载预览版

②云中转网盘:

[社区版] vs_community__779707798.1623900522.exe
[专业版] vs_professional__779707798.1623900522.exe
[企业版] vs_enterprise__779707798.1623900522.exe

Leave a Reply

您的电子邮箱地址不会被公开。 必填项已用 * 标注