使用 C # ,Visual Studio 2010。
MSDN 上记录了一个名为 系统,网络,Mvc的命名空间。该命名空间中所有类型的文档说明它们位于 System.Web.Mvc.dll中。
System.Web.Mvc.dll
但是,当我转到添加引用“ . NET”选项卡时,此程序集从列表中丢失。为什么?
我相信您会发现在 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 元素添加程序集 编制时使用的参考资料 动态资源 自动将此程序集链接到 编译每个代码时的资源 模组。
”好的,将该 XML 添加到 Web.config 可以,但是不能回答 问题”
应该在那里。默认情况下,添加引用列表似乎是有序的,但实际情况并非如此。点击名称标题,再次查看。
所需的程序集现在已经出现在列表中。
我只能推测是什么导致了它的出现,但是我怀疑是因为我从 档案→ 新的→ 工程项目→ NET Web 应用程序这是我以前从来没有做过的事情。这可能导致某种后期初始化的发生,并且列表中填充了用于 Web 开发的附加程序集。
检查以下步骤:
注意 : 如果目标框架设置为。NetFramework4客户端配置文件,它不会在引用列表中列出 MVC 引用。你会发现。网络架构4及。Net Framework 4客户端配置文件 给你。
那个。NETFramework4客户端配置文件是。NETFramework4,它针对客户端应用程序进行了优化。它为大多数客户端应用程序提供功能,包括 Windows 演示基金会(WPF)、 Windows 窗体、 Windows 通信基金会(WCF)和 ClickOnce 特性。这使得针对。NETFramework4客户端配置文件。
我遇到了同样的问题,无法找到 System.Web.MVC 引用程序集。
最后发现它位于以下位置。
注意你的 VS 是否安装在 C: (有时 MVC.dll 不在大家都在谈论的默认位置,我指的是位于 C: 驱动器中的“ 参考程序集”文件夹。)
如果它不在那里,它肯定应该在这里:
程序文件(x86) Microsoft ASP.NET ASP.NET MVC 2汇编系统.Web.MVC.dll
因此,通过导航或添加引用菜单中的浏览选项卡添加 dll。
我也遇到过同样的问题,这里有一个有趣的原因: 我的猜测是,您希望 System.Web.Mvc在列表中位于 System.Web之下。但名单不是按字母顺序排列的。
System.Web.Mvc
System.Web
首先对列表进行排序,然后查看 System.Web附近。
VisualStudio2012已经改变了这一点(我知道最初的问题是 VS2010,但是标题仍然会在搜索中出现)。
当您创建 VS2012 MVC 项目时,system.web.MVC 被放置在与解决方案对等的包文件夹中。默认情况下,这将在 Web 项目中引用,您可以在那里找到确切的路径)。
如果您想在辅助项目中引用它(例如支持。使用过滤器或其他属性) ,然后可以从那里引用它。
你也可以从 Nuget Package Manager 控制台添加这个,比如:
Install-Package Microsoft.AspNet.Mvc -Version 4.0.20710.0 -ProjectName XXXXX
Microsoft. AspNet. Mvc 依赖于:
对我来说没什么大不了的。在我们的例子中,这是一个类库,它的存在仅仅是为了支持我们的 Mvc 应用程序。所以,我们认为这是一个良性的依赖,在最坏的情况下。
比起指向文件系统或 GAC 中的程序集,我当然更喜欢这样做,因为将来更新包可能会比我过去使用 GAC 和文件系统程序集引用的经历要轻松得多。
在 VS Express 2012我找不到 System。韦伯。Mvc 在“ Assembly”选项卡中,但是在搜索了一会儿之后,我发现我需要查看“ 程序集扩展”选项卡而不是默认的“ Assembly Framework”选项卡。
最好的方法是使用 NuGet 包管理器。
只要更新下面的 MVC 包,它应该工作。
我通过搜索“ mvc”解决了这个问题。系统。韦伯。Mvc 出现在搜索结果中,尽管它不在列表中。
可以分开安装, 它不包含在框架中, 选择选项卡列表“扩展”,它存在有更多的其他库, 一切都好,不需要使用旧的图书馆等, 存在老2030和4001
如果您在 Visual Studio 2017中遇到了这个问题,那么您可能正在使用在 VS 的早期版本中创建的带有指向 C:\Program Files (x86)\Microsoft ASP.NET的引用提示路径的 MVC 4项目。VisualStudio2017不再安装此目录。
C:\Program Files (x86)\Microsoft ASP.NET
我们通常通过在2017实例旁边安装 VisualStudio2015副本来解决这个问题,并在上面的路径中安装必要的库。然后我们更新受影响项目中的所有参考资料,就可以开始了。
我没有在 VS2012中得到 System.Web.Mvc,但是我在 VS2013中得到了它。 使用 AddReference 对话框,
或者,您可以在项目路径中找到它,
YourProjectName 包 Microsoft.AspNet.Mvc.5.0.0 lib net45 System. Web. Mvc.dll