在安装 ASP.NET 和 WebTools2015之后,VisualStudio 错误“对象引用未设置为对象的实例”

在安装了 ASP.NET 和 Web Tools 2015(RC1更新1)之后,当打开 *.cshtml文件时,我在 ASP.NET MVC 4项目中得到以下错误:

对象引用未设置为对象的实例

Enter image description here

即使我开始一个新的 ASP.NET MVC 4项目并试图在那里打开一个 *.cshtml文件,我也会收到相同的错误消息。

我在使用 Visual Studio 2015

173181 次浏览

建议您尝试以下任何一种或全部方法:

  • 重新启动 VisualStudio

  • 尝试 以管理员身份运行(右键单击 VisualStudio 并选择“作为管理员运行”)

  • 检查 VisualStudio 的任何更新(如果有的话,下载并安装它们)

  • 尝试打开一个不同的解决方案/项目

如果问题仍然存在,你可以尝试以下方法:

  • 重新启动本地机器

  • 尝试将 VisualStudio 重置为 系统默认值(这可以通过 VisualStudio 中的选项完成)

  • 尝试修复 VisualStudio 安装

也许这会有所帮助:

  1. 删除下列文件夹中的内容:
    1. C: 用户% userprofile% AppData 本地 MicrosoftVisualStudio
    2. C: 用户% userprofile% AppData 本地 MicrosoftVSCommon
  2. 有时候,你需要去:
    1. [ x64] C: Program Files (x86) Microsoft Visual Studio 14.0 Common7 IDE
    2. [ x86] C: Program Files Microsoft Visual Studio 14.0 Common7 IDE

运行 devenv /resetuserdata

除此之外,您的所有用户设置(如 VisualStudio 布局、链接的 Microsoft 帐户或起始页)可能都会消失。

对我来说,ASP.NET 5还不是必需的,我删除了更新,然后重新安装了 ASP.NET 4.5:

  1. 从控制面板“ Microsoft ASP.NET 5 RC1 Update1”中删除。此后,您将不再打开 ASP.NET MVC 项目
  2. 然后更改“ MicrosoftVisualStudioProfessional2015”的安装,单击“修改”,并选择“ MicrosoftWebDeveloperTools”

不再遵循 VisualStudio2015中的更新通知! ! !

对我来说,

  1. 我在 WindowsTaskManager: VsHub.exe中结束了该进程。
  2. 重新启动 VisualStudio。

在那之后,一切又像魔法一样运作起来了!

在我的情况下(不一定是你的解决方案,但可能对某人有帮助) ,解决方案是:

  1. 选择菜单 工具扩展及更新

  2. 从右面板中选择 Online选项卡

  3. 搜索单词 web tools,然后选择 Microsoft ASP.NET and Web Tools并安装它。

在我的例子中,由于 VisualStudio 的大量修复操作,我的计算机中缺少了这一点。

删除 %LocalAppData%\Microsoft\VisualStudio\14.0\ComponentModelCache并重新启动 VisualStudio。

或者,使用 清除 MEF 组件缓存扩展。

我解决了

run devenv /resetuserdata

在这条路上:

[x64] C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE

我假设在 x86中它是这样工作的:

[x86] C:\Program Files\Microsoft Visual Studio 14.0\Common7\IDE

我整个周末都在和这个吵架。但这很容易做到。我所做的是点击修复而不是卸载。修复后,我直接点击重启。在那之后,一切都很完美。 你应该试试这个,也许它也可以为你工作! ! !

为了缩小范围/帮助某人,我进行了调查。对于我来说,我最初将文件夹移动到 C: Users { user } AppData Local MicrosoftVisualStudio 到我的文档中,并允许 VisualStudio 通过重新启动它来重新创建它。这消除了错误。所以我把所有的东西一个一个地移回去,每次都重新启动 VisualStudio,直到我发现了罪魁祸首。这些文件夹可以放回原处:

  • 1033(用 old 重写自动生成的副本)
  • Designer (在我的旧副本中,重新启动 VS 时没有重新创建,而是复制了回来)
  • 扩展(用 old 覆盖自动生成的副本)
  • ImageLibrary (用 old 重写自动生成的副本)
  • 通知(用旧版本覆盖自动生成的副本)
  • 模板(在我的旧副本中,重新启动 VS 时没有重新创建,而是将其复制回来)
  • VTC (在我的旧版本中,重新启动 VS 时没有重新创建,而是复制了回来)

这些文件可以移回/覆盖自动生成的文件:

  • ApplicationPrivateSettings (在我的旧副本中,重新启动 VS 时没有重新创建)
  • ApplicationPrivateSettings.lock (用 old 重写自动生成的副本)
  • Lock (用 old 覆盖自动生成的副本)

这些文件可以搬回来。每个都在我的旧版本中,并且在重新启动 VS 时没有重新创建:

  • . NETFramework,Version = v4.0,Set = Framework,Hash = C958D412.dat
  • . NETFramework,Version = v4.0,Set = RecentAssembly,Hash = 0. dat
  • . NETFramework,Version = v4.5,Set = Extended,Hash = 75EAE334. dat
  • . NETFramework,Version = v4.5,Set = Extended,Hash = 497525A2. dat
  • . NETFramework,Version = v4.5,Set = Framework,Hash = 5AE9A175. dat
  • . NETFramework,Version = v4.5.2,Set = Extended,Hash = 24CEEB0D. dat
  • . NETFramework,Version = v4.5.2,Set = Extended,Hash = 72AE305. dat
  • . NETFramework,Version = v4.5.2,Set = Extended,Hash = ADF899D7.dat
  • . NETFramework,Version = v4.5.2,Set = Framework,Hash = D8E943A2.dat

这些导致了问题——删除这些文件并重新启动 VS,以允许它重新创建这些文件:

  • Component entModelCache-当我用旧文件夹覆盖这个文件夹的内容时(4个文件: MS.VS.Default.cache,。目录。呃。外部) ,这给了我所有的错误,我以前得到的关于无法加载包时,我的项目,以及“对象引用没有设置为一个对象的实例”错误时,试图关闭 VS。
  • Config-与 Component entModelCache 相同
  • . NETFramework,Version = v4.0,Set = Extended,Hash = 6D09DECC. dat-导致 JavaScript Language Service 的错误输出,抱怨丢失 js 文件
  • . NETFramework,Version = v4.0,Set = Extended,Hash = 9951BC03. dat-导致 JavaScript Language Service 的错误输出,抱怨丢失 js 文件
  • . NETFramework,Version = v4.5.2,Set = RecentAssembly,Hash = 0. dat-导致 JavaScript Language Service 的错误输出,抱怨丢失 js 文件

这些是上次的错误。NETFramework 文件(如果我不把它们添加回去,就得不到它们) :

01:10:11.7550: Referenced file 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\JavaScript\References\libhelp.js' not found.
01:10:11.7550: Referenced file 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\JavaScript\References\sitetypesWeb.js' not found.
01:10:11.7550: Referenced file 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\JavaScript\References\domWeb.js' not found.
01:10:11.7550: Referenced file 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\JavaScript\References\underscorefilter.js' not found.
01:10:11.7550: Referenced file 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\JavaScript\References\showPlainComments.js' not found.

我可能只是需要重新安装/修复 JavaScript Language Service 插件,所以它可能是无关的。但是显然,devenv.exe.config 和 Component entModelCache 需要更正“对象引用未设置为对象的实例”错误。

重新启动 VisualStudio 对我来说就是这样。在下一次运行时,它显示了一个“扫描新的和更新的 MEF 组件...”,然后它正常执行。

它似乎与 Windows 更新有关,虽然我没有证据。

每次我尝试创建一个“新”项目时,都会收到一个例外。

我的解决办法是:

  1. 选择菜单 工具扩展及更新

  2. 检查“更新”链接... 有一个微软 ASP.NET 和网络工具的更新。安装它。

这就解决了我的问题。

每次我创建一个“新”项目时都会遇到这个例外。

我的解决办法是:

  • 去菜单 工具? 扩展及更新
  • 没有检查“更新”链接... 搜索“ asp.net”。有一个 更新到 Microsoft ASP.NET 和 Web 工具 AspNetWebFrameworksTools2015 _ KB3137909.exe 并安装它。

这就解决了我的问题。


不幸的是,我遇到了另一个例外:

“调用目标已引发异常”

我禁用了 FIPS设置,启用 DWORD值为零。

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FipsAlgorithmPolicy]
Enabled=dword:00000000 And All fixed.

问题: 我的 VS2015在安装 SSDT 之后出现了错误。每当我点击 Tools > > Extended and Update,它就会抛出“ Object reference not set to an instance of an Object”错误。当我试图打开一个解决方案时,它抛出了一些没有正确设置的提供程序。

解决方案: 经过几个小时的研究,我尝试了其他人提到的所有解决方案,但并没有解决我的问题。每当错误弹出窗口指向检查 ActivityLog.xml 时。但我无视了。经过几个小时的挫折之后,我决定仔细阅读这个错误,并查看 ActivitLog.xml,发现它正在查找 ”无法加载文件或程序集“ System.Collections.Immutable,Version = 1.1.37.0”。所以我开始搜索这个程序集,偶然发现了这个链接 https://sergeytihon.com/2015/12/01/how-to-restore-viual-studio-2015-after-update-1-dependency-dance/ 然后按照那里的步骤,解决了我的问题。

进入% LOCALAPPDATA%/Local Microsoft VisualStudio 14.0 devenv.exe.config 并搜索“ System. Collections.Immutable”并将 newVersion 从1.1.36.0更改为1.1.37.0

最终配置应该是这样的

<dependentAssembly>
<assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="1.0.27.0-1.1.65535.65535" newVersion="1.1.37.0"/>
</dependentAssembly>

删除该解决方案的所有项目中的 bin 和 obj 文件夹。

看起来这些文件夹里有一些旧版本的视觉工作室生成的旧文件,这些文件与新版本的视觉工作室不兼容。

在尝试了上面的答案之后,我发现你还必须重新启动计算机。该错误可能是 git 问题的一部分,重新启动计算机将重置。

Goto windows + R,键入% temp% 并按回车键。删除临时文件夹和文件,然后尝试打开相同的文件夹

解决这个问题的办法,当我今天早些时候有这个是,有一个额外的 在我的 Web.config 的末尾加上一组标签,一旦删除了返回的功能。

我在 VS2017中尝试将解决方案发布到 Azure 时也遇到了类似的错误。

这个算法帮助我解决了这个问题:

  1. 关闭 VS2017
  2. 打开 C: Users { your user name } AppDataLocalMicrosoftVisualStudio 文件夹
  3. 重命名15.0 _ 08edcd83文件夹
  4. 开始 VS
  5. 出版工程罚款!

请注意,这将从 VisualStudio 的历史记录中删除最近的文件/项目,并链接到 MS 帐户。

这个方法与 Top 的答案稍有不同。在这里,除了重命名上述文件夹之外,您不必删除其他文件夹。