为什么System.Web.Mvc未在添加引用中列出?

Tim*_*mwi 129 .net visual-studio assembly-references

使用C#,Visual Studio 2010.

在MSDN上有一个名为System.Web.Mvc的命名空间.该命名空间中所有类型的文档说明它们都在System.Web.Mvc.dll.

但是,当我转到Add Reference,".NET"选项卡时,列表中缺少此程序集.为什么?

jah*_*ahu 105

在VS Express 2012中,我在"程序集"选项卡中找不到System.Web.Mvc,但经过一些搜索后我发现我需要查看" assemblies\extensions "选项卡而不是默认的"assemblies\framework" " 标签.

  • 为你+1,因为你找到了我遇到的问题的根本原因。我选择使用下面禁止的 NuGet 安装方法,我将在那里评论我所做的事情。 (2认同)

san*_*ula 97

最好的方法是使用NuGet包管理器.

只需更新下面的MVC包,它应该可以工作.

在此输入图像描述

  • 我必须承认这是在大多数情况下添加对MVC的引用的正确方法(它应该免除你在Visual Studio之外运行应用程序可能导致错误引用的问题).但是在已经包含MVC的大型解决方案中,使用"管理NuGet包以获得解决方案"来安装相同版本的库会更好.原因是,如果您只是从NuGet包管理器安装它们,您可能最终会遇到版本不兼容(管理器通常会为您提供最新版本). (4认同)
  • 我已经将该解决方案用于使用MVC 4的项目,该项目无法使用Visual Studio 2015进行编译.它还确保项目库在所有开发人员中都是统一的. (2认同)

小智 60

我遇到了同样的问题,无法找到System.Web.MVC引用程序集.

终于找到了,它位于以下位置.

请注意,如果您的VS安装在C:中(有时MVC.dll不在每个人都在谈论的默认位置,我的意思是位于C:驱动器中的" Reference Assemblies "文件夹.)

如果它不在那里,它肯定应该在这里:

\ Program Files(x86)\ Microsoft ASP.NET\ASP.NET MVC 2\Assemblies\System.Web.Mvc.dll

因此,通过导航或添加参考菜单中的浏览选项卡添加dll.

  • 如果你在VCS团队中工作,那不是很好的解决方案.在这种情况下,绝对路径是邪恶的. (9认同)

for*_*reh 28

您也可以从Nuget Package Manager控制台添加以下内容:

Install-Package Microsoft.AspNet.Mvc -Version 4.0.20710.0 -ProjectName XXXXX
Run Code Online (Sandbox Code Playgroud)

Microsoft.AspNet.Mvc依赖于:

  • 'Microsoft.AspNet.WebPages(≥2.0.20710.0&& <2.1)'
  • 'Microsoft.Web.Infrastructure(≥1.0.0.0)'
  • 'Microsoft.AspNet.Razor(≥2.0.20710.0&& <2.1)'

......这对我来说似乎没什么大不了的.在我们的例子中,这是一个类库,仅用于为我们的Mvc应用程序提供支持.所以,我们认为这是最坏的良性依赖.

我绝对更喜欢这个指向文件系统或GAC中的程序集,因为将来更新程序包可能比我过去使用GAC和文件系统程序集引用的经验要痛苦得多.


小智 11

我遇到了同样的问题,这里有一个有趣的原因:我的猜测是你希望System.Web.Mvc它位于System.Web列表中.但该列表不是按字母顺序排列的.

首先对列表进行排序,然后看看附近System.Web.


egl*_*ius 5

"OK,并称XML到Web.config的作品,但它不回答这个问题"

应该在那里.默认情况下,添加引用列表似乎是有序的,但事实并非如此.点击名称标题然后再看一遍.


Ima*_*man 5

检查以下步骤:

  1. 检查MVC是否正确安装.
  2. 检查项目的属性,看看Target Framework是什么项目.如果目标框架未设置为.Net Framework 4,请进行设置.

注意:如果目标框架设置为.Net Framework 4 Client Profile,则不会在引用列表中列出MVC引用.您可以在此处找到.Net Framework 4和.Net Framework 4 Client Profile之间的不同内容.

.NET Framework 4 Client Profile是.NET Framework 4的一个子集,针对客户端应用程序进行了优化.它为大多数客户端应用程序提供功能,包括Windows Presentation Foundation(WPF),Windows窗体,Windows Communication Foundation(WCF)和ClickOnce功能.这样可以为面向.NET Framework 4 Client Profile的应用程序实现更快的部署和更小的安装包.


zet*_*ety 5

我通过搜索“mvc”解决了这个问题。System.Web.Mvc 出现在搜索结果中,尽管它未包含在列表中。


Tim*_*mwi 4

所需的程序集现已出现在列表中。

\n\n

我只能推测是什么导致它出现,但我怀疑这是我去了File \xe2\x86\x92 New \xe2\x86\x92 Project \xe2\x86\x92 ASP.NET Web Application 的事实,我有以前从未做过。这可能会导致发生某种延迟初始化,并且列表中会填充用于 Web 开发的其他程序集。

\n