Файл vstemplate ссылается на класс мастера Blazor.IWizardImplementationRoot, который не существует в сборке при переносе расширения на VS2022.
Я поддерживаю расширение Visual Studio для платформы Blazor, которое используется для создания нового приложения Blazor с моими пользовательскими компонентами. В настоящее время я использую указанную ниже цель установки в моем файле манифеста для установки VSIX в VS2019.
<InstallationTarget Id="Microsoft.VisualStudio.Pro" Version="[16.3.29209,17.0)"/>
Я думал также предоставить поддержку VS2022 для моего настраиваемого расширения шаблона проекта Blazor. Итак, я попробовал указанную ниже цель установки в моем файле манифеста.
<Installation>
<InstallationTarget Id="Microsoft.VisualStudio.Pro" Version="[16.3.29209,18.0)">
<ProductArchitecture>amd64</ProductArchitecture>
</InstallationTarget>
</Installation>
VSIX был успешно установлен в VS2019 и VS2022 после этих изменений. Но настраиваемый мастер, разрабатываемый интерфейсом IWizard, не загружается в VS2022 при попытке создать собственный шаблон проекта Blazor. Итак, я выполнил следующие шаги, чтобы перенести свое расширение на VS2022 (Примечание: я думал, что после миграции мой VSIX будет работать как на VS2019, так и на VS2022)
- Измените структуру на 4.7.2 в моем приложении VSIX и настраиваемом мастере
- Я удалил все сборки фреймворка из моего приложения 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, которого нет в сборке».
Требуются ли какие-либо изменения для запуска моего расширения как VS2019, так и VS2022 с одним VSIX вместо отдельного VSIX?
Предложите решение для устранения этой проблемы и предоставьте шаги по обеспечению поддержки VS2022 и VS2019 в одном VSIX вместо поддержки отдельного проекта VSIX и отдельного файла VSIX. Потому что мы публикуем наш файл VSIX на рынке Visual Studio. если мы поддерживаем отдельный файл VSIX, мы не можем опубликовать файл VSIX для VS2022
Спасибо,
Ганесан Р.
1 ответ
Вы следовали документации по переносу расширений на VS2022?
Например, я вижу, что вы пытались объединить цель установки, но в документации показано, что они выполняются отдельно, поскольку <17.0 требует, чтобы ProductArchitecture была
x86
и>=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.