0

我正在维护 Blazor 平台的 Visual Studio 扩展,该扩展用于使用我的自定义组件创建新的 Blazor 应用程序。目前我在清单文件中使用以下安装目标在 VS2019 中安装 VSIX

<InstallationTarget Id="Microsoft.VisualStudio.Pro" Version="[16.3.29209,17.0)"/>

我想也为我的自定义 Blazor 项目模板扩展提供 VS2022 支持。因此,我在清单文件中尝试了以下安装目标。

<Installation>
        <InstallationTarget Id="Microsoft.VisualStudio.Pro" Version="[16.3.29209,18.0)">
            <ProductArchitecture>amd64</ProductArchitecture>
        </InstallationTarget>
    </Installation>

本次改动后,VSIX 已成功安装在 VS2019 和 VS2022 中。但是由 IWizard 界面开发的自定义向导在尝试创建我的自定义 blazor 项目模板时没有加载到 VS2022 中。因此,我已按照以下步骤将我的扩展迁移到 VS2022(注意:我认为迁移后我的 VSIX 将在 VS2019 和 VS2022 上运行)

  1. 在我的 VSIX 和自定义向导应用程序中将框架更改为 4.7.2
  2. 我已经从我的 VSIX 和向导应用程序中删除了所有框架程序集,并安装了以下两个 NuGet 包作为包参考
<PackageReference Include="Microsoft.VisualStudio.SDK">
      <Version>17.0.0-previews-1-31410-258</Version>
</PackageReference>
<PackageReference Include="Microsoft.VisualStudio.TemplateWizardInterface">
      <Version>17.0.0-previews-1-31314-256</Version>
</PackageReference>

现在我的 VSIX 和向导应用程序已在 VS2022 中成功编译和调试,并且我的扩展在 VS2022 中按预期工作。但是在 VS2019 中,我遇到了类似“vstemplate 文件引用了向导类 Blazor.IWizardImplementationRoot,它在程序集中不存在”的问题</p>

是否需要进行任何更改才能使用单个 VSIX 而不是单独的 VSIX 运行我的 VS2019 和 VS2022 扩展?

请提出解决此问题的解决方案并提供在单个 VSIX 中提供 VS2022 和 VS2019 支持的步骤,而不是维护单独的 VSIX 项目和单独的 VSIX 文件。因为我们在 Visual Studio 市场中发布我们的 VSIX 文件。如果我们维护单独的 VSIX 文件,我们将无法发布 VS2022 的 VSIX 文件

谢谢,

甘尼桑·R。

4

1 回答 1

0

您是否遵循了将扩展迁移到 VS2022的文档?

例如,我看到您尝试组合安装目标,但文档显示分别执行它们,因为 <17.0 需要 ProductArchitecturex86并且 >=17.0 需要它amd64

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

但是,根据您的扩​​展包含的其他代码类型,您可能需要拆分为单独的 VSIX。这是由于 VS 本身的参考程序集之间发生了重大变化。

于 2021-07-08T16:58:45.653 回答