如何升级扩展以支持Visual Studio 2019

德斯·克里斯德森

最近,我更新了30多个扩展以支持Visual Studio 2019(16.0)。为了确保它们能够正常工作,我得到了一个非常早期的VS2019内部构建,并用它进行测试(在Visual Studio团队中工作有其好处)。这个升级过程是我经历过的最简单的过程之一。

我想与您分享我的步骤,以展示它是多么容易,这样您就知道在Visual Studio 2019发布后该做什么了。

.vsixmanifest的更新

我们需要对.vsixmanifest文件进行几个更新。首先,我们必须更新支持的VS版本范围。

<安装目标>

这是一个支持Visual Studio 14.0(2015)和15.0(2017)的所有主要和次要版本的版本,一直到16.0版,但不包括16.0版。

<Installation InstalledByMsi=“false”><InstallationTarget Id=“Microsoft.VisualStudio.Pro”Version=“[14.0,16.0)”/></安装>

只需将版本的上限从16.0更改为17.0,如下所示:

<Installation InstalledByMsi=“false”><InstallationTarget Id=“Microsoft.VisualStudio.Pro”Version=“[14.0,17.0)”/></安装>

<先决条件>

接下来,更新<Prerequisite>元素中的版本范围。这是它以前的样子:

<前提条件><Prerequisite Id=“Microsoft.VisualStudio.Component.CoreEditor”Version=“[15.0,16.0)”DisplayName=“Visual Studio核心编辑器”/></前提条件>

我们必须更新版本范围,使其具有与之前相同的上限,但在这种情况下,我们可以将上限设置为开放式,如下所示:

<前提条件><Prerequisite Id=“Microsoft.VisualStudio.Component.CoreEditor”Version=“[15.0,)”DisplayName=“Visual Studio核心编辑器”/></前提条件>

这意味着前提条件需要15.0或更新版本。

如果您依赖Microsoft。VisualStudio。MPF然后将其删除。此依赖项是自Visual Studio 2010之前就不再需要的旧依赖项。它看起来像这样:

<依赖项><Dependency Id=“Microsoft.VisualStudio.MPF.14.0”DisplayName=“Visual Studio MPF”d:Source=“Installed”Version=“[14.0]”/></依赖项>

请参阅更新的.vsixmanifest文件标记编辑器,捆扎机和小型机、和图片优化.

接下来的步骤

什么都没有。就这样。你完了。

嗯,有一件事可能会影响你的延期。自动加载包的扩展必须在后台完成,如博客文章所述,通过更新扩展的自动加载行为来提高关键场景的响应能力。您也可以在上查看此演练如何更新扩展以使用AsyncPackage如果你还没有。

对微软的引用如何。VisualStudio。壳牌公司以及其他此类集会?与新版本的Visual Studio一样,它们会自动重定向到等效的16.0版本,并且具有向后兼容性以确保它可以正常工作TM(TM)根据我在升级方面的经验,它们实际上只起作用。

我将回到我的其他扩展中添加VS2019支持。我还有大约40个人要走。

6条评论

讨论结束。登录以编辑/删除现有评论。

  • 迪帕克·古普塔 0

    这帮了我。谢谢!

  • 戈登·德鲁扬 0

    你好,

    一些附加内容:
    json–在文件的末尾,我对扩展名.vsixmanifest进行了相同的修改
    “依赖项”:{“Microsoft.VisualStudio.Component.CoreEditor”:“[15.0,)”}}

    catalog.json–开始时的三分之一,与manifest.json相同的修改。
    “依赖项”:{“07fb5b16-f4be-4488-9a19-b4f36d2c05a6”:“1.7.0”,“Microsoft.VisualStudio.Component.CoreEditor”:“[15.0,)”}

    完成所有更改后,可以将对象导出器扩展安装到Visual Studio 2019中。

    戈登·德·鲁扬

  • 塞德伯格 0

    我正在使用`SVsSolutionBuildManager`/`IVsSolutionBuildManager2`,它的工作方式发生了重大变化(至少在更新为使用`AsyncPackage`之后)。
    以前,每个打开的解决方案都会调用“Opened”事件。在VS 2019中,当从启动对话框打开解决方案时,不会调用“Opened”事件。我认为这是因为当我连接到事件时,解决方案已经打开了。只需在初始化期间手动调用事件处理程序,就可以修复此问题。

  • 杰勒德·维尼曼 0

    我正在尝试在Visual Studio 2019中使用Power Query SDK,并在.vsix存档中的manifest.json和catalog.json文件中将16.0更改为17.0。然后,我从浏览器中“打开”.vsix文件(双击)。vsix安装程序打开并询问我在哪里安装扩展,但仅提供Visual Studio 2017作为安装目标,尽管我的计算机上同时安装了VS17和VS19。我做错了什么?

  • 瓦尔丹·托夫马西安 0

    它也帮助了我,非常感谢!

反馈usabilla图标