使用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”选项卡时,列表中缺少该程序集。为什么?
Answers:
在VS Express 2012中,我在“程序集”选项卡中找不到System.Web.Mvc,但是经过一番搜索,我发现我需要查看“ 程序集\扩展名 ”选项卡,而不是默认的“程序集\框架” “ 标签。
Could not load file or assembly...The located assembly's manifest definition does not match the assembly reference
)相关的运行时错误。我的解决方案中有另一个项目引用了另一个版本,该方法仅允许我添加对System.Web.Mvc的引用,即Version = 4.0.0.0。NuGet安装方法添加了正确的版本
最好的方法是使用NuGet软件包管理器。
只需更新下面的MVC软件包,它就可以工作。
我遇到了同样的问题,无法找到System.Web.MVC参考程序集。
最终发现它位于以下位置。
请注意,如果您的VS安装在C:中(有时MVC.dll不在每个人都谈论的默认位置,我的意思是位于C:驱动器中的“ Reference Assemblys ”文件夹。)
如果不存在,则绝对应该在这里:
\ 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和文件系统程序集引用所经历的痛苦要轻得多。
“好的,可以将XML添加到Web.config中,但是它不能解决问题”
它应该在那里。默认情况下,添加引用列表似乎是有序的,但事实并非如此。点击名称标题,然后再次查看。
检查以下步骤:
注意:如果目标框架设置为.Net Framework 4客户端配置文件,则不会在引用列表中列出MVC参考。您可以在此处找到.Net Framework 4和.Net Framework 4客户端配置文件之间的区别。
.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开发的其他程序集。
我相信您会发现在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会自动将此程序集链接到资源。