VS2013 - 操作无法完成

31
在安装了Visual Studio 2013并尝试一些新功能后,我发现我无法在我的一个MVC项目中打开一个cshtml文件。如果我尝试在默认的html编辑器中打开它,就会收到以下错误信息:

无法完成操作

在另一个编辑器(例如HTML(Webforms)编辑器)中打开该文件没有任何问题。因此,这似乎是默认html编辑器的问题。
我按照以前的VS版本的各种建议来解决这个问题。如果我删除所有解决方案的“.suo”文件,并重新启动Visual Studio,则错误消息更改为:

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

一旦Visual Studio创建了一个新的“.suo”文件,错误消息就会恢复到之前的那个。
我尝试在VS2013上进行修复安装,但仍然遇到同样的问题。此外,在安全模式下运行VS也不起作用。我尝试创建一个新的MVC项目,在创建过程中失败了。对于这些任何错误,Windows事件日志都没有包含任何消息。
有其他人遇到过这个问题吗?

1
@Nicholas - 尽管这两个问题具有类似的症状/错误消息,但实际上问题是不同的。建议重复的答案涉及删除项目的.suo文件,但这并没有解决我遇到的问题。我收到的错误最终与Visual Studio 2013无法处理之前版本的Visual Studio可以处理的web.config设置有关。 - Brosto
16个回答

35

我也曾遇到这个问题,以下是我采取的解决措施,希望能够修复或找到问题:

  1. 删除所有 .suo 文件
  2. 终止 IIS Express 进程
  3. 关闭 VS2013 并重新打开
  4. 打开项目并尝试启动 (F5)
  5. 很可能是由于 web.config 文件出现了错误。对于我来说,是因为 <appSettings> 出现了两次。
  6. 修复 web.config 文件,保存后问题就解决了。

希望这些方法也能够解决你的问题。


1
我按照您的步骤操作了,但是我的web.config文件中没有出现任何错误,我还检查了是否有重复的<appSettings>,但是并没有发现。不幸的是,我仍然收到这个错误。 - Brosto
7
谢谢,我相当确定你只需要检查一下你的 web.config 文件。我的文件中有一个合并冲突,导致了这个错误。 - Elger Mensonides
4
web.config中的错误会导致这种情况发生。例如,我曾将<location>元素放错位置,放在了<system.web>节点内而不是根节点,因此导致了这个错误。修复web.config文件将允许您再次打开cshtml文件。 - Rush Frisby
对我很有帮助。谢谢分享,你是我的救星! - jhovgaard
在 web.config 文件中进行先前的搜索时(使用 control + f),我按了 shift 键,结果在一个标签的末尾打印了 F。当时我没有意识到这个问题。 - The Muffin Man
对我来说,是web.config中<appSettings>部分中“key”中的大写“K”。谢谢! - Dave Markle

25

那对我很有帮助。 - NikitaKo
对我有用。谢谢。 - Fab60
@kabeleced 非常感谢你。我对这个错误感到非常疯狂。我希望在设置Windows时它不要那么不可预测。 - Burak Karasoy
1
我必须在这之后做些事情才能使它在我的情况下工作(VS 2017):将目标浏览器从Chrome更改为IE。然后按F5并等待直到完成。停止它并将浏览器改回Chrome。之后错误消失了。 - user3772108

9
我刚刚弄清楚了。在我的web.config中,我有以下内容:

  <appSettings>
    <add key="webpages:Version" value="2.0.?.?" />
  </appSettings>

将该值更改为“3.0.0.0”解决了问题。在VS2010或VS2012中我从未遇到过这样的问题。看起来是IDE内部无法优雅地处理它。

6

这对我在VS 2015中起作用(以管理员身份打开命令提示符):

cd C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE
devenv.exe /resetuserdata

这太烦人了...现在每周都会发生。当我重置用户数据时,我当然必须再次安装所有扩展程序... - Erik A. Brandstadmoen
我也遇到了同样的错误,但是这是在我安装了ASP.NET 5 RC1之后才出现的。我运行了Visual Studio 2015 Update 1,这解决了我的问题。 - Andre Lombaard

5
像大多数人在这里提到的那样,请检查您的web.config文件是否存在重复。我很匆忙,只是从其他解决方案中复制并粘贴了appSettings,没有注意到现有文档中已经存在该部分。然后这个问题开始浮出水面。我回去整合了appSettings,保存后,问题就消失了。

double <appSettings> conflict


3

检查您的 web.config 文件中是否存在错误:

  • 重复的键(应用程序设置)
  • 标签未关闭或使用多次
  • ...

3

对我来说,通过将 VS 2013 快捷方式设置为“以管理员身份运行”解决了这个错误。


我在我的笔记本电脑上遇到了这个问题,但是在我的台式机上没有。两台机器的Visual Studio配置几乎相同。Web.config的解决方法不起作用。我安装了ReSharper,但禁用它并没有解决问题,所以这可能与它无关。以管理员身份运行对我有用,但我想要一个更好的解决方法。有什么具体需要提升权限的想法吗? - Jared
我的唯一猜测是:在Windows 7及以上版本中,读写位于“我的文档”文件夹之外的目录。 - ErikE

1
这是由于在调试aspx页面时,IIS Express未从Visual Studio运行导致的。
快速而简单的解决方法是右键单击您的项目,选择“使用Visual Studio开发服务器”,然后再次右键单击并选择“使用IIS Express”,将解决此问题。这样我就会关注配置文件中所需的所有更改。

这是我的问题,只不过它与没有设置主机环境有关。我正在使用LocalIIS,但Properties->Web->Servers设置为ExternalHost,我将其更改为适合我的正确设置,然后它就起作用了,“对象引用未设置为对象的实例”错误消失了。 - John Maloney

0

我的web.config文件出现了错误,在<xml>标签之前有两个空格。删除后,错误就不再显示了。


0

我在运行于Win 10上的VS 2015中遇到了同样的错误。幸运的是,只需重新启动即可轻松解决。重新启动后,似乎Windows应用了一些在上一个会话中破坏了VS的更新。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接