问题描述
我正在维护 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中成功安装。但是在尝试创建我的自定义 blazor 项目模板时,由 IWizard 界面开发的自定义向导未在 VS2022 中加载。因此,我按照以下步骤将我的扩展迁移到 VS2022(注意:我认为迁移后我的 VSIX 将在 VS2019 和 VS2022 上运行)
<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”之类的问题
使用单个 VSIX 而不是单独的 VSIX 运行我的扩展 VS2019 和 VS2022 是否需要任何更改?
请提出解决此问题的解决方案,并提供在单个 VSIX 中提供 VS2022 和 VS2019 支持的步骤,而不是维护单独的 VSIX 项目和单独的 VSIX 文件。因为我们要在 Visual Studio 市场中发布我们的 VSIX 文件。如果我们维护单独的 VSIX 文件,我们将无法发布 VS2022 的 VSIX 文件
谢谢,
Ganesan R.
解决方法
您是否遵循了 migrating extensions to VS2022 的文档?
例如,我看到您尝试组合安装目标,但文档显示要单独执行它们,因为 x86 而 >=17.0 要求它为 {{1 }}:
amd64
但是,根据您的扩展包含的其他代码类型,您可能需要拆分为单独的 VSIX。这是由于 VS 本身的参考程序集之间的重大更改。