Devart T4 Editor 1.0.9无法在VS 2017 Pro安装,求解决方案
解决VS 2017 Pro安装Devart T4 Editor 1.0.9失败的问题
我之前碰到过一模一样的VSIX安装空引用错误,看了你的日志,问题根源应该是VS安装器在扫描你机器上的Visual Studio产品(比如那个Visual Studio Build Tools 2017)时,版本解析出了问题,导致没法正确匹配Devart T4 Editor的兼容SKU。试试下面这几个解决方案:
检查VS 2017 Pro的核心编辑器组件是否安装
日志里明确显示插件依赖Microsoft.VisualStudio.Component.CoreEditor(版本要求15.0到16.0之间)。打开Visual Studio Installer,找到VS 2017 Professional,点击「修改」,在「单个组件」里确认勾选了「Visual Studio core editor」,没勾选的话就选中它完成安装/更新。用命令行指定目标SKU安装
直接双击VSIX文件时,安装器可能会被Build Tools干扰,识别错目标产品。你可以用命令行强制指定安装到VS 2017 Pro:- 右键命令提示符,选择「以管理员身份运行」
- 切换到VSIXInstaller所在路径:
cd "C:\Program Files (x86)\Microsoft Visual Studio\Installer\resources\app\ServiceHub\Services\Microsoft.VisualStudio.Setup.Service" - 执行安装命令,替换成你的VSIX文件实际路径:
VSIXInstaller.exe /sku:Professional /version:15.0 "C:\Users\xxx\Downloads\Devart.TemplateEditor.Vs2017.vsix"
清理VS扩展缓存后重试
有时候缓存文件损坏也会搞砸安装流程:- 关掉所有Visual Studio窗口
- 删除这两个目录的内容(把
<你的VS实例ID>换成你机器上的实际ID,在VS Installer的VS 2017 Pro详情里能找到):%LOCALAPPDATA%\Microsoft\VisualStudio\15.0_<你的VS实例ID>\Extensions%LOCALAPPDATA%\Microsoft\VisualStudio\15.0_<你的VS实例ID>\ComponentModelCache
- 重启电脑后再尝试安装插件
修复VS 2017 Pro
如果上面的方法都不管用,可能是VS本身的安装文件有损坏。打开Visual Studio Installer,选中VS 2017 Professional,点击「修复」,等修复完成后再装Devart T4 Editor。
你的安装日志详情
5/24/2018 9:55:57 AM - Microsoft VSIX Installer 5/24/2018 9:55:57 AM - ------------------------------------------- 5/24/2018 9:55:57 AM - vsixinstaller.exe version: 5/24/2018 9:55:57 AM - 15.0.437+g8d2477ee3d 5/24/2018 9:55:57 AM - ------------------------------------------- 5/24/2018 9:55:57 AM - Command line parameters: 5/24/2018 9:55:57 AM - C:\Program Files (x86)\Microsoft Visual Studio\Installer\resources\app\ServiceHub\Services\Microsoft.VisualStudio.Setup.Service\VSIXInstaller.exe,C:\Users\xxx\Downloads\Devart.TemplateEditor.Vs2017.vsix 5/24/2018 9:55:57 AM - ------------------------------------------- 5/24/2018 9:55:57 AM - Microsoft VSIX Installer 5/24/2018 9:55:57 AM - ------------------------------------------- 5/24/2018 9:55:59 AM - Initializing Install... 5/24/2018 9:55:59 AM - Extension Details... 5/24/2018 9:55:59 AM - Identifier : T4 Editor 5/24/2018 9:55:59 AM - Name : Devart T4 Editor 5/24/2018 9:55:59 AM - Author : Devart 5/24/2018 9:55:59 AM - Version : 1.0.9.0 5/24/2018 9:55:59 AM - Description : Editor for T4 and Devart template files with syntax coloring and IntelliSense. 5/24/2018 9:55:59 AM - Locale : en-US 5/24/2018 9:55:59 AM - MoreInfoURL : http://www.devart.com/ 5/24/2018 9:55:59 AM - InstalledByMSI : False 5/24/2018 9:55:59 AM - SupportedFrameworkVersionRange : [4.5,) 5/24/2018 9:55:59 AM - 5/24/2018 9:55:59 AM - SignatureState : Unsigned 5/24/2018 9:55:59 AM - Supported Products : 5/24/2018 9:55:59 AM - Microsoft.VisualStudio.Community 5/24/2018 9:55:59 AM - Version : [15.0] 5/24/2018 9:55:59 AM - 5/24/2018 9:55:59 AM - References : 5/24/2018 9:55:59 AM - Prerequisites : 5/24/2018 9:55:59 AM - ------------------------------------------------------- 5/24/2018 9:55:59 AM - Identifier : Microsoft.VisualStudio.Component.CoreEditor 5/24/2018 9:55:59 AM - Name : Visual Studio core editor 5/24/2018 9:55:59 AM - Version : [15.0,16.0) 5/24/2018 9:55:59 AM - 5/24/2018 9:55:59 AM - Signature Details... 5/24/2018 9:55:59 AM - Extension is not signed. 5/24/2018 9:55:59 AM - 5/24/2018 9:55:59 AM - Searching for applicable products... 5/24/2018 9:55:59 AM - Found installed product - Global Location 5/24/2018 9:55:59 AM - Found installed product - Visual Studio Build Tools 2017 (2) 5/24/2018 9:55:59 AM - System.NullReferenceException: Object reference not set to an instance of an object. at Microsoft.VisualStudio.ExtensionManager.EngineUtilities.TryGetProductVersion(String productVersionString, Version& productVersion) at Microsoft.VisualStudio.ExtensionManager.EngineUtilities.TryGetProductVersionFromPath(String path, Version& productVersion) at VSIXInstaller.SupportedVSSKU.get_VersionWithBuildRevisionInfo() at VSIXInstaller.App.IsValidSKUForExtension(SupportedVSSKU supportedSKU, IExtension extension, List`1 validSKUs) at VSIXInstaller.App.ShouldAddSkuToValidSkuList(SupportedVSSKU sku, IInstallableExtension extension, List`1 validSKUs) at VSIXInstaller.App.GetInstallableData(String vsixPath, Boolean isRepairSupported, IEnumerable`1& skuData) at VSIXInstaller.App.Initialize(Boolean isRepairSupported) at VSIXInstaller.App.Initialize() at System.Threading.Tasks.Task`1.InnerInvoke() at System.Threading.Tasks.Task.Execute()
内容的提问来源于stack exchange,提问作者Michael Mainer
相关产品推荐
相关产品推荐

