【问题标题】:Updating VS Extension from 2015 to 2017 (VSIX v3) makes the package invalid将 VS Extension 从 2015 更新到 2017 (VSIX v3) 使包无效
【发布时间】:2017-08-23 11:27:18
【问题描述】:

我有一个较旧的扩展,我想在 VS 2017 中工作。为了能够做到这一点,我知道我必须使用新的 VSIX Manifest v3。该扩展在 2015 更新 3 中运行良好。要对其进行更新,我已完成以下操作:

  1. 在VS2017中打开扩展源。系统提示我进行一次性升级,该升级已成功完成
  2. 使用 NuGet 将 Microsot VSSDK BuildTools 从 14.x 更新到 15.x
  3. 将 Prerequisite 块添加到包含 Microsoft.VisualStudio.Component.CoreEditor 的 source.extension.vsixmanifest 文件
  4. 更新安装目标以支持新的 Visual Studio,就像这样

    <InstallationTarget Version="[15.0,16.0)" Id="Microsoft.VisualStudio.Enterprise" />

构建成功,但是一旦我在调试文件夹中打开 vsix 文件,就会收到一条消息告诉我

The file is not a valid VSIX package

如果我使用 WinRAR 打开文件,我可以看到两个强制文件 catalog.json 和 manifest.json 不存在,因为它们应该是新的 v3 格式。

我在这里错过了什么?

【问题讨论】:

    标签: visual-studio-extensions vsix vsixmanifest


    【解决方案1】:

    原来我的问题是,在 vbproj 文件(或大多数其他文件的 csproj)中,顶部有一个导入,如下所示:

    <?xml version="1.0" encoding="utf-8"?>
    <Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
        <Import Project="..\..\packages\Microsoft.VSSDK.BuildTools.15.1.192\build\Microsoft.VSSDK.BuildTools.props" Condition="Exists('..\..\packages\Microsoft.VSSDK.BuildTools.15.1.192\build\Microsoft.VSSDK.BuildTools.props')" />
        <Import Project="..\packages\Microsoft.VSSDK.BuildTools.14.3.25407\build\Microsoft.VSSDK.BuildTools.props" Condition="Exists('..\packages\Microsoft.VSSDK.BuildTools.14.3.25407\build\Microsoft.VSSDK.BuildTools.props')" />
        ....
    

    如您所见,此项目文件包含新版本和旧版本的 BuildTools 的导入。我不确定为什么会发生这种情况,因为我所做的只是通过 NuGet 更新 VSSDK BuildTools。我还尝试完全卸载勾选 Force uninstall 的 BuildTools,但它似乎在我尝试的所有操作中仍然存在。

    因此,如果您遇到类似问题,请查看您的 vbproj/csproj 文件,看看它是否有针对旧版本 Microsoft.VSSDK.BuildTools 的导入

    【讨论】:

    • 我在将 VSIX 项目迁移到 2017 时遇到了同样的问题,结果完全相同。不幸的是,上面的解决方案不适用于我的项目。您能否提供更多建议。你可以在github.com/vmelamed/vm/tree/master/Aspects/Visix/… 找到我的项目。提前谢谢!
    • 我看到的一个问题是 manifest.json 和 catalog.json 没有创建...
    【解决方案2】:

    你还必须升级 BuildTools 包,你得到的错误表明这没有发生:https://docs.microsoft.com/en-us/visualstudio/extensibility/how-to-migrate-extensibility-projects-to-visual-studio-2017

    【讨论】:

    • 如果您指的是 Microsoft.VSSDK.BuildTools,那么它已经升级到版本 15.1.192。忘记了原始问题中的 BuildTools 部分。将在其中进行编辑。
    • 尝试将其添加到项目文件中。没有运气。
    • 你能分享你的csproj文件吗?
    • 这就是为什么我想看看你的 csproj/vbproj 文件!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-26
    • 1970-01-01
    • 2017-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多