Visual Studio 2017 未被安装扩展检测到

Visual Studio 2017 is not detected by extensions for installation

我正在尝试安装仅 Visual Studio 2017 支持的扩展程序。我使用的是 Professional,我从未安装过 RC,只有 RTM 版本。但是,未检测到 VS 2017(请参阅下面的安装日志)。其他扩展安装得很好,大概是因为它们也支持我已经安装的 VS 2015。这些扩展确实出现在 2015 年和 2017 年。

我试过修复安装,然后完全卸载并重新安装,但没有解决问题。具体扩展名是Roslynator 2017.

如何解决此问题以便检测到 VS 2017 并为其安装扩展?

安装日志:

3/15/2017 2:21:53 PM - Microsoft VSIX Installer
3/15/2017 2:21:53 PM - -------------------------------------------
3/15/2017 2:21:53 PM - Initializing Install...
3/15/2017 2:21:54 PM - Extension Details...
3/15/2017 2:21:54 PM -  Identifier         : 9289a8ab-1bb6-496b-9992-9f7ea27f66a8
3/15/2017 2:21:54 PM -  Name               : Roslynator 2017
3/15/2017 2:21:54 PM -  Author             : Josef Pihrt
3/15/2017 2:21:54 PM -  Version            : 1.2.51
3/15/2017 2:21:54 PM -  Description        : A collection of 170+ analyzers and 170+ refactorings for C#, powered by Roslyn.
3/15/2017 2:21:54 PM -  Locale             : en-US
3/15/2017 2:21:54 PM -  MoreInfoURL        : http://github.com/JosefPihrt/Roslynator
3/15/2017 2:21:54 PM -  InstalledByMSI     : False
3/15/2017 2:21:54 PM -  SupportedFrameworkVersionRange : [4.6,)
3/15/2017 2:21:54 PM - 
3/15/2017 2:21:54 PM -  SignatureState     : Unsigned
3/15/2017 2:21:54 PM -  Supported Products : 
3/15/2017 2:21:54 PM -      Microsoft.VisualStudio.Community
3/15/2017 2:21:54 PM -          Version : [15.0,16.0)
3/15/2017 2:21:54 PM -      Microsoft.VisualStudio.Pro
3/15/2017 2:21:54 PM -          Version : [15.0,16.0)
3/15/2017 2:21:54 PM -      Microsoft.VisualStudio.Enterprise
3/15/2017 2:21:54 PM -          Version : [15.0,16.0)
3/15/2017 2:21:54 PM - 
3/15/2017 2:21:54 PM -  References         : 
3/15/2017 2:21:54 PM -      -------------------------------------------------------
3/15/2017 2:21:54 PM -      Identifier   : Microsoft.VisualStudio.MPF.15.0
3/15/2017 2:21:54 PM -      Name         : Visual Studio MPF 15.0
3/15/2017 2:21:54 PM -      Version      : [15.0,16.0)
3/15/2017 2:21:54 PM -      MoreInfoURL  : 
3/15/2017 2:21:54 PM -      Nested       : No
3/15/2017 2:21:54 PM - 
3/15/2017 2:21:54 PM - Signature Details...
3/15/2017 2:21:54 PM -  Extension is not signed.
3/15/2017 2:21:54 PM - 
3/15/2017 2:21:54 PM - Searching for applicable products...
3/15/2017 2:21:54 PM - Found installed product - Microsoft Visual Studio Enterprise 2015
3/15/2017 2:21:54 PM - Found installed product - Microsoft Visual Studio Professional 2015
3/15/2017 2:21:54 PM - Found installed product - Microsoft Visual Studio Community 2015
3/15/2017 2:21:54 PM - Found installed product - Microsoft Visual Studio 2015 Shell (Integrated)
3/15/2017 2:21:54 PM - Found installed product - Global Location
3/15/2017 2:21:54 PM - VSIXInstaller.NoApplicableSKUsException: This extension is not installable on any currently installed products.
   at VSIXInstaller.App.InitializeInstall(Boolean isRepairSupported)
   at VSIXInstaller.App.InitializeInstall()
   at System.Threading.Tasks.Task.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()

必须为每个 VS 版本专门重新编译扩展,引用的 VS DLL-s 不同,所以它是否在 2015 上工作应该无关紧要。

a) 你可以尝试联系作者(打开一个问题左右),这可能是最好的。

b) 或者尝试 自己重新编译源代码 可能会起作用,因为这可能会过滤掉可能的版本控制问题。这帮助了我几次。您需要将 "Other Toolsets" 下的 "Visual Studio extension development" 添加到您的设置中(只需重新运行设置文件并修改),您应该能够构建代码(尽管每个扩展可能有一些细节)。鉴于该工具是开源的,这可能是我选择的路线。
至于为什么(你可能会遇到这些问题)很难说,我自己的一个扩展有一些问题,它可能是一个错误(因为 2017 年还是有点新鲜),它可能是一些某种 DLL 版本控制问题,可能是您的设置问题。所以您也可以尝试全新安装或...

c) 在另一台机器上尝试总是有帮助的

正如 Hans Passant 评论的那样,Microsoft 对安装进行了巨大的更改,因此以前检测 VS 的方法将不再有效。比如检测VS安装文件夹,现在需要一些额外的工具或者脚本,

https://github.com/Microsoft/vswhere

因此 How to: Migrate Extensibility Projects to Visual Studio 2017 等指南非常重要,您可以按照提示进行操作。

从日志文件来看,它看起来像是一个较旧的 vsixinstaller.exe 试图安装您的扩展,而不是来自 VS 2017 的扩展。它应该在这样的路径中 "C:\Program Files (x86)\Microsoft Visual Studio17\Enterprise\Common7\IDE\VSIXInstaller.exe"

尝试使用 Roslynator.VisualStudio.1.2.51.vsix 作为参数显式 运行 它。

也许您 "only" 必须使用正确的安装程序。 Visual Studio 2107 的那个。所以你的路径应该在任何其他 VS 版本之前列出 C:\Program Files (x86)\Microsoft Visual Studio17\Professional\Common7\IDE。

Professional必须换成安装好的。企业版、终极版、...

按 Win+R 并写入正确版本 VSIXIntaller 的路径。 例如。

"E:\Microsoft Visual Studio17\Enterprise\Common7\IDE\VSIXInstaller.exe" "C:\Users\jdonoso.IMLG\Downloads\Ankh.VS15Package.vsix"

我有 3 个版本的 Visual Studio,但正确的安装程序是 VS2017,因为该软件包适用于 VS2017。考虑到这一点。

这就是我犯同样错误的原因。使用正确的版本解决它。

VSIXInstaller 有两个位置

显然应该是: "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\VSIXInstaller.exe"

我们要使用的位置: "C:\Program Files (x86)\Microsoft Visual Studio\Installer\resources\app\ServiceHub\Services\Microsoft.VisualStudio.Setup.Service\VSIXInstaller.exe"

在我通过第二条路径启动 VSIXInstaller 之后,我可以通过 PowerShell 和静默选项安装任何 VSIXPlugin

例如: $arguments = "/q","/nr","/admin","/logFile:TFSSCExplorerExtension.log","\sp057\Projekte\IKT\TFSSCExplorerExtension.vsix" & "C:\Program Files (x86)\Microsoft Visual Studio\Installer\resources\app\ServiceHub\Services\Microsoft.VisualStudio.Setup.Service\VSIXInstaller.exe" $参数