安装 Visual Studio 扩展时缺少 Microsoft.VisualStudio.Component.CoreEditor

Missing Microsoft.VisualStudio.Component.CoreEditor when installing Visual Studio extension

我正在尝试获取 scrcpy to run in Visual Studio by using this extension 并确定我是否可以扩展其功能。

无法为 Visual Studio 2019 安装 VSIX 扩展

安装失败指示:

我根据 here

更新了 <InstallationTarget><Dependency>

You need to change InstallationTarget to [15.0,17.0) and Prerequisite to [15.8.27729.1,).

我解压缩了 .vsix 文件,将 extension.vsixmanifest 文件更新为以下内容:

<Installation>
    <InstallationTarget Id="Microsoft.VisualStudio.Community" Version="[15.0,17.0)" />
  </Installation>
  <Dependencies>
    <Dependency Id="Microsoft.Framework.NDP" DisplayName="Microsoft .NET Framework" Version="[4.5,)" />
    <Dependency Id="Microsoft.VisualStudio.MPF.15.0" DisplayName="Visual Studio MPF 15.0" Version="[15.0]" />
  </Dependencies>
  <Prerequisites>
    <Prerequisite Id="Microsoft.VisualStudio.Component.CoreEditor" Version="[15.8.27729.1,)" DisplayName="Visual Studio core editor" />
  </Prerequisites>

压缩目录,重命名为 *.vsix,再次尝试安装。

安装程序现在识别 Visual Studio 2019,开始安装但失败,缺少 Microsoft.VisualStudio.Component.CoreEditor

12/11/2019 5:25:00 PM - Beginning to install extension to Visual Studio Enterprise 2019 (2)...
12/11/2019 5:25:02 PM - Install Error : Microsoft.VisualStudio.ExtensionManager.MissingReferencesException: This extension cannot be installed because the following references are missing:
-Microsoft.VisualStudio.Component.CoreEditor (Microsoft.VisualStudio.Component.CoreEditor)
   at Microsoft.VisualStudio.ExtensionManager.EngineUtilities.EnsureNoMissingReferences(IEnumerable`1 missingRefs)
   at Microsoft.VisualStudio.ExtensionManager.PackageInstaller.PrepareEngineInstall(IDependencyGraph dGraph, IDependencyComparisonSeed seed, Component vsixComponent, Boolean isProductComponent, Int32& totalInstallationSteps)
   at Microsoft.VisualStudio.ExtensionManager.ExtensionEngineImpl.PerformSetupEngineInstall(InstallableExtensionImpl extension, Boolean installPerMachine, Boolean isPackComponent, IDictionary`2 extensionsInstalledSoFar, List`1 extensionsUninstalledSoFar, IInstalledExtensionList modifiedInstalledExtensionsList, IProgress`1 progress, InstallFlags installFlags, AsyncOperation asyncOp, Version targetedVsVersion, IInstalledExtension& newExtension)
   at Microsoft.VisualStudio.ExtensionManager.ExtensionEngineImpl.InstallInternal(InstallableExtensionImpl extension, InstallFlags installFlags, IDictionary`2 extensionsInstalledSoFar, List`1 extensionsUninstalledSoFar, IInstalledExtensionList modifiedInstalledExtensionsList, AsyncOperation asyncOp, IProgress`1 progress, Version targetedVsVersion)
   at Microsoft.VisualStudio.ExtensionManager.ExtensionEngineImpl.BeginInstall(IInstallableExtension installableExtension, InstallFlags installFlags, AsyncOperation asyncOp, Version targetedVsVersion)
   at Microsoft.VisualStudio.ExtensionManager.ExtensionEngineImpl.InstallWorker(IInstallableExtension extension, InstallFlags installFlags, AsyncOperation asyncOp)

请就后续步骤提出建议?

Missing Microsoft.VisualStudio.Component.CoreEditor when installing Visual Studio extension

我认为主要问题是您没有修改 Microsoft.VisualStudio.Component.CoreEditor 版本以支持 Visual Studio 2019 在 catalog.json 文件中。所以当你运行vsix文件时,它会监控然后运行文件缺少对应的VS2019Microsoft.VisualStudio.Com ponent. CoreEditor.

解决方案

除了对 extension.vsixmanifest 文件的更改外, 请同时将 catalog.json 文件中的 "Microsoft.VisualStudio.Component.CoreEditor":"[15.0,16.0)" 更改为 [15.0,17.0).

希望对您有所帮助。

Update for VS2022 启用安装你必须修改 extension.vsixmanifest

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

正如 在较新的 Visual studio 上使用较旧的 vsix 软件包时所说,您应该将 [14.0,16.0] 更新为当前的 VS 版本 [14.0,xx.x].

文件内

  • catalog.json
  • manifest.json
  • extension.vsixmanifest

作为替代方案,您可能需要修改 Visual Studio 安装(使用 Visual Studio 安装程序)并包含 "Visual Studio extension development"。很有可能,这个工具集将解决缺少需求的问题。

对于 VS2022,您需要将版本字符串编辑为 [17.0,18.0),如:

Microsoft.VisualStudio.Component.CoreEditor": "[17.0,18.0)"