使用 C#、Visual Studio 2010。
MSDN 上有一个名为System.Web.Mvc的命名空间。该命名空间中所有类型的文档都说它们在System.Web.Mvc.dll
.
但是,当我转到“添加引用”“.NET”选项卡时,列表中缺少该程序集。为什么?
使用 C#、Visual Studio 2010。
MSDN 上有一个名为System.Web.Mvc的命名空间。该命名空间中所有类型的文档都说它们在System.Web.Mvc.dll
.
但是,当我转到“添加引用”“.NET”选项卡时,列表中缺少该程序集。为什么?
最好的方法是使用 NuGet 包管理器。
只需更新下面的 MVC 包,它应该可以工作。
在 VS Express 2012 中,我在“程序集”选项卡中找不到 System.Web.Mvc,但经过一番搜索,我发现我需要查看“程序集\扩展”选项卡而不是默认的“程序集\框架” “ 标签。
我遇到了同样的问题,无法找到 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。
您还可以从 Nuget 包管理器控制台添加它,例如:
Install-Package Microsoft.AspNet.Mvc -Version 4.0.20710.0 -ProjectName XXXXX
Microsoft.AspNet.Mvc 依赖于:
...这对我来说似乎没什么大不了的。在我们的例子中,这是一个仅用于为我们的 Mvc 应用程序提供支持的类库。所以,我们认为它在最坏的情况下是一种良性依赖。
我绝对更喜欢指向文件系统或 GAC 中的程序集,因为与我过去使用 GAC 和文件系统程序集引用的经验相比,将来更新包可能会少很多痛苦。
我遇到了同样的问题,这是一个有趣的原因:我的猜测是您希望System.Web.Mvc
位于System.Web
列表中。但该列表不是按字母顺序排列的。
首先对列表进行排序,然后查看System.Web
.
我通过搜索“mvc”解决了这个问题。System.Web.Mvc 出现在搜索结果中,尽管它不包含在列表中。
“好的,将 XML 添加到 Web.config 有效,但它不能回答问题”
它应该在那里。默认情况下,添加引用列表似乎是有序的,但事实并非如此。点击名称标题并再次查看。
检查这些步骤:
注意:如果目标框架设置为 .Net Framework 4 Client Profile,它不会在引用列表中列出 MVC 引用。您可以在此处找到 .Net Framework 4 和 .Net Framework 4 Client Profile 之间的不同之处。
.NET Framework 4 客户端配置文件是针对客户端应用程序优化的 .NET Framework 4 的子集。它为大多数客户端应用程序提供功能,包括 Windows Presentation Foundation (WPF)、Windows 窗体、Windows Communication Foundation (WCF) 和 ClickOnce 功能。这为面向 .NET Framework 4 客户端配置文件的应用程序提供了更快的部署和更小的安装包。
所需的程序集现在已出现在列表中。
我只能推测是什么导致它出现,但我怀疑是因为我去了File → New → Project → ASP.NET Web Application,这是我以前从未做过的。这可能会导致发生某种延迟初始化,并且列表中会填充用于 Web 开发的其他程序集。
这对于 Visual Studio 2012 已经改变(我知道最初的问题是 VS2010,但标题仍然会在搜索中出现)。
当您创建 VS2012 MVC 项目时,system.web.mvc 被放置在与解决方案对等的 packages 文件夹中。默认情况下,这将在 web 项目中引用,您可以在那里找到确切的路径)。
如果您想在辅助项目中引用它(比如带有过滤器或其他属性的支持 .dll),那么您可以从那里引用它。
我相信您会发现在 web.config 文件中引用了 MVC 程序集,而不是在项目本身中。
像这样的东西:
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</assemblies>
</compilation>
回复您的评论;
我能给出的最佳答案来自这里:
add 元素添加要在编译动态资源期间使用的程序集引用。ASP.NET 在编译每个代码模块时会自动将此程序集链接到资源。
它可以单独安装,它不包含在框架中,选择选项卡列表“扩展”并且它存在还有更多其他库,一切都可以不需要使用旧库等,存在旧20 30和4001
如果您在 Visual Studio 2017 中遇到此问题,您很可能正在使用在以前版本的 VS 中创建的 MVC 4 项目,其参考提示路径指向C:\Program Files (x86)\Microsoft ASP.NET
. Visual Studio 2017 不再安装此目录。
我们通常通过在 2017 实例旁边安装 Visual Studio 2015 的副本来解决此问题,并在上述路径中安装必要的库。然后我们更新受影响项目中的所有引用,我们就可以开始了。