打开Visual Studio 11 Beta中的MVC3项目时出现“缺少Web组件”错误

10

当我在Visual Studio 11 Beta中打开一个包含MVC3项目的解决方案时,会看到以下消息:

The Web project 'Landboss.Web' requires missing web components to run with Visual Studio. Would you like to download and install them using the Web Platform Installer now? (Note: Some components might require restart to take effect.) ASP.NET Web pages with Razor syntax 1.0.0.0

这个Web项目'Landboss.Web'需要一些Visual Studio缺失的网络组件。您是否希望现在使用Web平台安装程序下载并安装它们?(注意:某些组件可能需要重启才能生效。) ASP.NET Web页面与Razor语法1.0.0.0

enter image description here

您正在尝试安装的产品不支持您的操作系统。单击此处获取更多信息。

到目前为止,我已在两台计算机上安装了Visual Studio 11 Beta,并且两者都出现了同样的问题。

7个回答

7
我认为这是因为之前我安装了Visual Studio 11 Developer Preview所致。虽然在安装Beta版本之前已将其卸载,但你知道这样做的效果。
要解决此问题,我执行以下步骤:
  1. 卸载“Microsoft ASP.NET MVC 3-Visual Studio 11工具更新”
  2. 卸载“Microsoft ASP.NET Web Pages-Visual Studio 11工具”
  3. 从安装ISO运行Visual Studio 11 Beta的“修复”。
它奏效了!Razor语法高亮和智能感知已恢复,并且打开项目时不再显示警告消息。

13
针对那些在VS2010中出现类似错误并寻找解决方案的人,需要注意:如果您安装了MVC4但没有安装MVC3,并尝试安装MVC3,则安装程序似乎已成功,但实际上未安装MVC3,因此您将在VS2010中遇到类似的错误。 您需要先卸载MVC4,然后安装MVC3,再重新安装MVC4。 然后问题就会得到解决。 - Michael Teper
@Michael Teper 谢谢。只是想确认一下,在卸载控制面板中,应该删除哪个?或者所有的都要删除?“Microsoft ASP.Net MVC 4(Bundle)”还是“Microsoft ASP.Net MVC 4 - Visual Studio Tools”还是“Microsoft ASP.Net MVC 4”? - cofiem
@cofiem 有一段时间了,但我认为如果你从(Bundle)开始,它将自动卸载其余部分。 - Michael Teper
1
@Michael Teper 是的,确认卸载(Bundle)将会移除其余部分,正如预期的那样。 - cofiem

3

当一个Subversion冲突被提交到仓库时,我也遇到了这个错误- 当在项目中加载这个块时,web.config的app设置中存在这个块似乎会触发该消息:

<<<<<<< .mine
<add key="blogCommentsApprovedByDefault" value="false" />
(other appsettings)
=======
<add key="blogCommentsApprovedByDefault" value="false" />
(other appsettings)
>>>>>>> .r358

清理appSettings中的Subversion冲突可以解决此错误。

3

这与配置设置网页相关:版本

[appSettings]
...
   [add key="webpages:Version" value="x.0.0.0" /]
...
[/appSettings]

如果您的系统上有多个版本的Razor(目前为1或2),最好添加此设置,如果它缺失的话。在适当的级别选择您想要/需要的版本。(显然替换括号...)

1

虽然@silent__thought's solution可以解决问题,但这不是最简单的方法。

@Costas solution可能正好解决了该问题,但如果您需要更详细的解释,请点击这里

在我的情况下,我需要在我的web.config文件中添加以下内容(适用于MVC 4):

<configuration>
  <appSettings>
    <add key="webpages:Version" value="2.0.0.0" />
    <add key="webpages:Enabled" value="false" />
    <add key="PreserveLoginUrl" value="true" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
  </appSettings>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
    <pages>
      <namespaces>
        <add namespace="System.Web.Helpers" />
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Web.WebPages" />
      </namespaces>
    </pages>
    <httpHandlers></httpHandlers>
  </system.web>
</configuration>

当然,你的应用程序可能不需要所有这些配置。这些只是MVC 4项目的默认设置。

我遇到了OP描述的问题,并检查了我的web.config中是否有所有这些条目...但不幸的是,问题仍然存在。 - J0e3gan

0

当 web.config 文件中的某些内容损坏时,我遇到了这个错误。我简单地格式化了文件,然后重新保存它。接着我重新启动了 Visual Studio。


0

我刚刚被这个问题咬了一口,它是web.config问题的另一种变体。在我的情况下,我们没有在代码库中存储web.config文件,而是通过自定义构建步骤从模板生成一个文件。当我们清理工作区*时,这个文件会被删除(因为它不在代码库中),所以下次启动Visual Studio时就会出现问题。通过msbuild进行命令行构建从未受到此影响。

*我们有一个“部分”清理,它删除所有构建工件(包括VS留下的工件),还有一个“完全”清理,将工作区重置为与从代码库中拉取的状态相同。


0

我遇到了这个错误,因为appSettings部分被设置为加密,并且加密密钥没有正确设置。似乎只要web.config有任何问题/格式不正确,即使与MVC无关,这个错误就会经常弹出。


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