【问题标题】:NullReferenceException when trying to install Visual Studio extension in VS 2015尝试在 VS 2015 中安装 Visual Studio 扩展时出现 NullReferenceException
【发布时间】:2017-04-04 14:02:54
【问题描述】:

所以我尝试在 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
  • 在另一台电脑上尝试(同样的错误)
  • 尝试在安全模式下安装 (devenv /safemode)
  • devenv /resetsettings
  • 尝试通过双击 vsix 文件而不是通过私有扩展库进行安装
  • 卸载扩展“开发者分析工具”
  • 尝试旧版本的代码,我很确定它曾经有效
  • 检查所有引用、清理、重建
  • 删除 nuget 包并读取它们(Newtonsoft.Json 和 1 个其他)

请帮忙。

【问题讨论】:

  • 它在调试模式下工作吗?另外,请尝试重命名或删除 /Common7/IDE/Extensions/ 文件夹中名为“MachineState.json”的文件?更多信息请参考:stackoverflow.com/questions/41098661/…
  • 是的,它在调试模式下工作,重命名“MachineState.json”没有帮助。我刚刚能够修复它(见下文)。

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


【解决方案1】:

好的,现在我检查了 ExtensionManager.Implementation 并从 CheckForValidDotNetFramework 方法中发现没有为扩展设置 .NET Framework 的版本范围。我可以将它设置在Dependencies 下的source.extension.vsixmanifest 中,在所有项目中将.NET 框架更改为该条目后,我在条目的Version range 中输入了[4.6.1]

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-20
    • 2012-04-11
    相关资源
    最近更新 更多