在 Visual Studio 2022 中创建扩展时面向 Visual Studio 2022 (ARM64)

使用 Visual Studio 2022 创建新的 VSIX 项目时,将从面向 Visual Studio 2022(Amd64)的模板创建该项目。 如果要以 Visual Studio 2022 (ARM64)为目标,则必须修改创建的项目。

在应面向 Visual Studio 2022(ARM64)的 VSIX 项目上执行以下步骤:

安装 Visual Studio 和编译扩展

Visual Studio 2022 下载页面安装 Visual Studio 2022。

以 .NET 语言编写的扩展

面向 Visual Studio 2022 的托管扩展的 Visual Studio SDK 在 NuGet 上独家提供:

用 C++ 编写的扩展

使用 C++ 编译的用于扩展的 Visual Studio SDK 随已安装的 Visual Studio SDK 一样可用。 必须针对 Visual Studio 2022 SDK 和 ARM64 专门编译扩展。

添加 Visual Studio 2022 目标:ARM64

使用以下步骤将 Visual Studio 2022:ARM64 支持添加到扩展。

  • 对于托管 Visual Studio 扩展:

    1. 在你的解决方案中打开 VSIX 项目。 此项目将针对 Visual Studio 2022 ARM64。
    2. 验证 VSIX 项目是否已正确构建。 可能需要添加引用以匹配原始 VSIX 项目,以解决任何编译器错误。
    3. 在 Visual Studio 2022 目标项目文件中使用包引用 17.x(或更早版本)。 使用 NuGet 包管理器或直接编辑项目文件。
    4. 如果项目已针对 任何 CPU 生成,则无需编辑生成配置,因为它也会针对 ARM64 生成。 但如果您只想面向 ARM64,请将项目更改为构建 ARM64 而不是 任何 CPU
    5. 编辑 source.extension.vsixmanifest 文件以反映面向 Visual Studio 2022 的目标。 设置 <InstallationTarget> 标记以指示 Visual Studio 2022。 设置元素 ProductArchitecture 以指示 ARM64 有效负载。
       <InstallationTarget Id="Microsoft.VisualStudio.Community" Version="[17.0,18.0)">
          <ProductArchitecture>amd64</ProductArchitecture>
       </InstallationTarget>
       <InstallationTarget Id="Microsoft.VisualStudio.Community" Version="[17.0,18.0)">
          <ProductArchitecture>arm64</ProductArchitecture>
       </InstallationTarget>
      

    注释

    受管理的 Visual Studio 扩展有效负载可以在为 AnyCPU 编译时针对 arm64 和 amd64 安装。

  • 对于 C++ Visual Studio 扩展:

    1. 在你的解决方案中打开 VSIX 项目。 此项目将针对 Visual Studio 2022 ARM64。
    2. 验证 VSIX 项目是否已正确构建。 可能需要添加引用以匹配原始 VSIX 项目,以解决任何编译器错误。
    3. 将项目的构建目标更改为面向 ARM64
    4. 更新依赖项 - 扩展可能在本地模块上具有的任何依赖项都必须更新为 ARM64 映像。
    5. 编辑 source.extension.vsixmanifest 文件以反映面向 Visual Studio 2022 的目标。 设置 <InstallationTarget> 标记以指示 Visual Studio 2022。 设置元素 ProductArchitecture 以指示 ARM64 有效负载。
      <InstallationTarget Id="Microsoft.VisualStudio.Community" Version="[17.0,18.0)">
         <ProductArchitecture>arm64</ProductArchitecture>
      </InstallationTarget>
      

    注释

    单个C++ Visual Studio 扩展有效负载不能同时面向安装 arm64 和 amd64。

此时,你有一个面向 Visual Studio 2022 的 VSIX 扩展。 应生成面向 Visual Studio 2022 的 VSIX 项目。

设置 <InstallationTarget> 标记,在设计器视图中表明使用 Visual Studio 2022

显示添加 InstallationTarget 的屏幕截图。

示例扩展 vsixmanifest:面向 AMD64 和 ARM64

显示添加 amd64 和 arm64 InstallationTarget 的屏幕截图。

如何编译托管的 Visual Studio 扩展:目标仅为 ARM64

  1. 将 ARM64 配置添加到项目(.csproj)。

    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|arm64' ">
       <DebugSymbols>true</DebugSymbols>
       <DebugType>full</DebugType>
       <Optimize>false</Optimize>
       <OutputPath>bin\Debug\</OutputPath>
       <DefineConstants>DEBUG;TRACE</DefineConstants>
       <ErrorReport>prompt</ErrorReport>
       <WarningLevel>4</WarningLevel>
       <PlatformTarget>ARM64</PlatformTarget>
       <RuntimeIdentifier>win-arm64</RuntimeIdentifier>
    </PropertyGroup>
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|arm64' ">
       <DebugType>pdbonly</DebugType>
       <Optimize>true</Optimize>
       <OutputPath>bin\Release\</OutputPath>
       <DefineConstants>TRACE</DefineConstants>
       <ErrorReport>prompt</ErrorReport>
       <WarningLevel>4</WarningLevel>
       <PlatformTarget>arm64</PlatformTarget>
       <RuntimeIdentifier>win-arm64</RuntimeIdentifier>
    </PropertyGroup>
    
  2. 选择 ARM64 目标(.csproj)。

    显示构建 arm64 项目的屏幕截图。

如何编译C++ Visual Studio 扩展:仅面向 ARM64

  1. 选择 ARM64 目标平台。

    显示添加 arm64 目标平台的屏幕截图。

  2. 选择 ARM64 库位置。

    可在以下位置找到所需的库文件: [VSInstallatioPath]\VSSDK\VisualStudioIntegration\common\lib\arm64

    显示添加 arm64 库路径的屏幕截图