尝试在VS 2015中安装Visual Studio扩展时出现NullReferenceException

时间:2017-04-04 14:02:55

标签: visual-studio-2015 visual-studio-extensions vspackage

因此,我尝试在Visual Studio 2015中安装Visual Studio扩展程序,但在尝试时遇到此安装错误:

  

System.NullReferenceException:未将对象引用设置为实例   对象

奇怪的是,我可以在调试时在实验实例中运行扩展。

这是在安装日志中:

Beginning to install extension to Microsoft Visual Studio Professional 2015...
Install Error : System.NullReferenceException: Object reference not set to an instance of an object.
   at Microsoft.VisualStudio.ExtensionManager.ExtensionManagerService.CheckForValidDotNetFramework(IExtension extension)
   at Microsoft.VisualStudio.ExtensionManager.ExtensionManagerService.CheckForInstallBlockers(InstallableExtensionImpl extension, IInstalledExtensionList modifiedInstalledExtensionsList, Boolean isNestedExtension, Boolean& olderVersionInstalled)
   at Microsoft.VisualStudio.ExtensionManager.ExtensionManagerService.InstallInternal(InstallableExtensionImpl extension, Boolean perMachine, Boolean isNestedExtension, IDictionary`2 extensionsInstalledSoFar, List`1 extensionsUninstalledSoFar, IInstalledExtensionList modifiedInstalledExtensionsList, AsyncOperation asyncOp, UInt64 totalBytesToWrite, UInt64& totalBytesWritten, Boolean enforceCertificateCheckForUpgrade)
   at Microsoft.VisualStudio.ExtensionManager.ExtensionManagerService.BeginInstall(IInstallableExtension installableExtension, Boolean perMachine, AsyncOperation asyncOp, Boolean enforceCertificateCheckForUpgrade)
   at Microsoft.VisualStudio.ExtensionManager.ExtensionManagerService.InstallWorker(IInstallableExtension extension, Boolean perMachine, AsyncOperation asyncOp, Boolean enforceCertificateCheckForUpgrade)

我已经尝试过的事情:

  • 修复Visual Studio
  • 在另一台PC上试用(同样的错误)
  • 尝试将其安装在safemode(devenv /safemode
  • devenv /resetsettings
  • 尝试通过双击安装vsix文件而不是通过专用扩展程序库
  • 卸载扩展程序" Developer Analytics工具"
  • 尝试使用旧版本的代码,我非常肯定曾经使用
  • 检查所有引用,清理,重建
  • 删除nuget包并读取它们(Newtonsoft.Json& 1 other)

请帮忙。

1 个答案:

答案 0 :(得分:0)

好了所以现在我检查了ExtensionManager.Implementation,并且从CheckForValidDotNetFramework方法我发现没有为扩展设置.NET Framework的Version范围。我可以在source.extension.vsixmanifestDependencies下的[4.6.1]中设置它,然后在将.NET框架更改为所有项目的Version range后,在@Service @PropertySource(value = "classpath:subscriberEventMapping.properties") public abstract class AbstractEventHandler implements IEventHandler { private String eventIdPattern; @Autowired Environment env; @Autowired(required = true) public void configureEventIdPattern() { String simpleClassName = this.getClass().getSimpleName(); String resolvedEventIdPattern = env.getProperty( simpleClassName.substring(0,1).toLowerCase() + simpleClassName.substring(1, simpleClassName.length())); this.eventIdPattern = resolvedEventIdPattern == null ? ".*" : resolvedEventIdPattern; } public String getEventIdPattern() { return eventIdPattern; } } 中输入regExpEventHandler=^(901|909|998|1000)$ dummyEventHandler=^([1-9][0-9]{0,2}|1000)$

如果日志中的错误消息哪个对象为空,那将会很有帮助。