安装ASP.NET和Web Tools 2015后出现Visual Studio错误“对象引用未设置为对象的实例”


125

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

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

在此处输入图片说明

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

我正在使用Visual Studio 2015


1
您是否尝试过修复Visual Studio?
Silvermind

尚未,但我只进行维修。让我们看看它带来了什么
Carsten Cors 2015年

有时您需要做的就是重启VS :)。
Chu

1
@fiorebat RC2时,我没有这里描述的问题。
卡斯滕·科尔斯

关闭VS,然后执行步骤1.1并重新启动,这对我来说已解决了这个问题。最初打开测试项目时,我遇到了一堆与设置有关的错误,但是它打开了。谢谢。
NetHawk

Answers:


196

也许这会有所帮助:

  1. 从以下文件夹中删除内容:
    1. C:\ Users \%userprofile%\ AppData \ Local \ Microsoft \ VisualStudio
    2. C:\ Users \%userprofile%\ AppData \ Local \ Microsoft \ VSCommon
  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

期望您的所有用户设置(例如Visual Studio布局,链接的Microsoft帐户或起始页)可能会消失。


6
工作了!但是,我只是将Visualstudio和VSCommon目录重命名为VisualStudio_old和VSCommon_old。无需运行“ devenv / resetuserdata”
Ray

1
@DamianKobak-是的,它通常会有所帮助,但仅适用于特定解决方案。当在每个项目步骤中出现问题时,更好地应对。
Fka

90
实际上,只需删除路径C:\ Users \ {user} \ AppData \ Local \ Microsoft \ VisualStudio \ {version-14或12}上的ComponentModelCache文件夹就足够了。您可以保留其余部分,而不会丢失任何设置...
Tom Burger

1
这适用于所有VS,因为它们仅在上有所不同\Microsoft Visual Studio <THIS NUMBER>\Common7\IDE
Fka

3
确保您导出自己的设置,因为这将清除它们并随后将其导入。这只是修复了我在VS2017中通过安装程序添加C ++支持后发生的类似错误。请注意,删除ComponentModelCache 没有帮助。
Rimmel


15

为了我,

  1. 我在Windows Task Manager中结束了该过程VsHub.exe
  2. 重新启动Visual Studio。

在那之后,一切再次变得像魅力!


我赞成您的回答,因为它可以解决“对象空引用”的问题,但是此后,我在Visual Studio中得到了新的例外The operation is not completed, invalid pointer
HakanFıstık,2016年

7

我解决了

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

1
这一次对我的作品,但不幸的是,它重置了很多东西,包括重新#:(
克特林Rădoi

我只是尝试过,它对我有用。那怎么办呢?
tylerlindell '16

5

建议尝试以下任何或所有方法:

  • 重新启动Visual Studio

  • 尝试以管理员身份运行(右键单击Visual Studio,然后选择“以管理员身份运行”)

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

  • 尝试打开其他解决方案/项目

如果问题仍然存在,您可以尝试以下选择:

  • 重启本地机器

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

  • 尝试修复您的Visual Studio安装


3

希望可以缩小范围/对某人有所帮助,所以我进行了调查。对我来说,我最初将文件夹C:\ Users \ {user} \ AppData \ Local \ Microsoft \ VisualStudio移到“我的文档”,并允许Visual Studio通过重新启动来重新创建它。这消除了错误。因此,我将所有内容一次一步地移回,然后每次都重新启动Visual Studio,直到发现罪魁祸首。这些文件夹可以移回:

  • 1033(用旧文件覆盖了自动生成的副本)
  • 设计器(位于我的旧副本中,当我重新启动VS时并没有将其重新创建,而是将其复制回了)
  • 扩展名(用旧版本覆盖自动生成的副本)
  • ImageLibrary(用旧的方法覆盖自动生成的副本)
  • 通知(将旧的自动生成的副本覆盖)
  • STemplate(位于我的旧副本中,当我重新启动VS时并没有重新创建它,而是将其复制回了)
  • VTC(位于我的旧副本中,当我重新启动VS时并没有重新创建它,而是将其复制回了)

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

  • ApplicationPrivateSettings(位于我的旧副本中,当我重新启动VS时最初并未重新创建)
  • ApplicationPrivateSettings.lock(用旧的方法覆盖自动生成的副本)
  • vspdmc.lock(用旧的文件覆盖自动生成的副本)

这些文件可以移回。每个文件都在我的旧副本中,并且在我重新启动VS时最初并未重新创建:

  • .NETFramework,Version = v4.0,Set = Framework,Hash = C958D412.dat
  • .NETFramework,Version = v4.0,Set = RecentAssemblies,Hash = 0.dat
  • .NETFramework,版本= v4.5,设置=扩展名,哈希= 75EAE334.dat
  • .NETFramework,Version = v4.5,Set = Extensions,Hash = 497525A2.dat
  • .NETFramework,Version = v4.5,Set = Framework,Hash = 5AE9A175.dat
  • .NETFramework,版本= v4.5.2,设置=扩展名,哈希= 24CEEB0D.dat
  • .NETFramework,Version = v4.5.2,Set =扩展名,哈希= 72AE305.dat
  • .NETFramework,Version = v4.5.2,Set =扩展名,哈希= ADF899D7.dat
  • .NETFramework,Version = v4.5.2,Set = Framework,Hash = D8E943A2.dat

这些引起的问题-删除这些文件并重新启动VS,以使其重新创建它们:

  • ComponentModelCache-当我用旧文件(4个文件:MS.VS.Default.cache,.catalogs,.err,.external)覆盖该文件夹的内容时,这给了我所有以前无法解决的错误加载我的项目时加载包,并且尝试关闭VS时出现“对象引用未设置为对象实例”错误。
  • devenv.exe.config-与ComponentModelCache相同
  • .NETFramework,Version = v4.0,Set = Extensions,Hash = 6D09DECC.dat-导致JavaScript语言服务输出错误,抱怨缺少js文件
  • .NETFramework,Version = v4.0,Set = Extensions,Hash = 9951BC03.dat-导致JavaScript语言服务输出错误,抱怨缺少js文件
  • .NETFramework,Version = v4.5.2,Set = RecentAssemblies,Hash = 0.dat-导致JavaScript语言服务输出错误,抱怨缺少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语言服务插件,因此它可能是无关的。但是肯定devenv.exe.config和ComponentModelCache需要去纠正“对象引用未设置为对象实例”的错误。


1
在Visual Studio 2013中复制和粘贴时,遇到一个问题,删除ComponentModelCache文件夹对我有用。
爱德华·科马

3

对我来说,尚不需要ASP.NET 5,我删除了更新,然后重新安装了ASP.NET 4.5。这有点棘手:

  1. 从控制面板“ Microsoft ASP.NET 5 RC1 Update1”中删除。之后,您将不再打开ASP.NET MVC项目
  2. 然后,我更改了“ Microsoft Visual Studio Professional 2015”的安装,单击“修改”,然后选择了“ Microsoft Web Developer Tools”

不再关注Visual Studio 2015中的更新通知!!!


3

尝试了最佳答案后,我发现您还必须重新启动计算机。该错误也可能是git问题的一部分,重启计算机也会在该问题中进行重置。


2

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

我的解决方案是:

  1. 转到菜单工具扩展和更新

  2. 检查“更新”链接。Microsoft ASP.NET和Web工具已更新。安装它。

这为我解决了。


仅供参考:我有不同的待处理更新;但是同样,安装这些解决了该问题。
JohnLBevan '17年

2

就我而言(不一定是您的解决方案,但可能对某人有所帮助),解决方案是:

  1. 转到菜单工具扩展和更新

  2. Online从右侧面板中选择标签

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

就我而言,由于大量的Visual Studio修复操作,我的计算机上没有此功能。


1

每次创建“新”项目时,都会遇到此异常。

我的解决方案是:

  • 转到菜单工具扩展和更新
  • 不检查“更新”链接...搜索“ 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.

1

转到Windows + R,然后输入%temp%,然后按Enter。删除临时文件夹和文件,然后尝试打开相同的文件夹


0

整个周末我一直在为此而斗争。但这很容易做到。我所做的是单击修复而不是卸载。修复后,我直接单击重新启动。在那之后,一切运转良好。您应该尝试一下,也许它也可以为您服务!!!


0

重新启动Visual Studio就是为我做的。在下一次运行时,它显示“正在扫描新的和更新的MEF组件...”,然后正常执行。

尽管我没有证据,但这似乎与Windows更新有关。


0

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

好像这些文件夹中包含的旧文件是由Visual Studio的某些旧版本生成的,这些文件与Visual Studio的新版本不兼容。


0

我今天早些时候遇到这个问题的解决方案是,在Web.config的末尾附加了一组附加的标签。删除后,将返回功能。


0

尝试将我的解决方案发布到Azure时,在VS2017中出现类似错误。

该算法帮助我解决了它:

  1. 关闭VS2017
  2. 打开C:\ Users {您的用户名} \ AppData \ Local \ Microsoft \ VisualStudio \文件夹
  3. 重命名15.0_08edcd83文件夹
  4. 开始VS
  5. 发布效果很好!

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

此方法与最佳答案略有不同。在这里,除了重命名上述文件夹外,您不必删除其他文件夹。


-1

问题:安装SSDT之后,我的VS 2015抛出错误。每当我单击“工具” >>“扩展和更新”时,都会引发“对象引用未设置为对象实例”错误。当我尝试打开解决方案时,它抛出了一些设置不正确的提供程序。

解决方案:经过数小时的研究,尝试了其他人先前提到的所有解决方案都无法解决我的问题。每次错误弹出窗口指向检查ActivityLog.xml时。但是我却忽略了它。经过数小时的无奈之后,我决定仔细阅读错误,并查看ActivitLog.xml,发现它正在寻找“无法加载文件或程序集'System.Collections.Immutable,版本= 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>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.