.net 我从何处引用System.Web.Mvc.dll?

.net 我从何处引用System.Web.Mvc.dll?,.net,asp.net-mvc,.net,Asp.net Mvc,在我的一个类库中,我只想对System.Web.Mvc.Server.MapPath(stringpath)进行一次调用 如果我将NuGet软件包Microsoft.AspNet.Mvc安装到该类库中,我必须首先安装Microsoft.AspNet.WebPages软件包,该软件包可能具有进一步的依赖性 我只需要一个DLLSystem.Web.Mvc.DLL,因为服务器类就在那里 我尝试从以下路径引用DLL: C:\ProgramFiles(x86)\Microsoft ASP.NET\ASP.

在我的一个类库中,我只想对
System.Web.Mvc.Server.MapPath(stringpath)
进行一次调用

如果我将NuGet软件包
Microsoft.AspNet.Mvc
安装到该类库中,我必须首先安装
Microsoft.AspNet.WebPages
软件包,该软件包可能具有进一步的依赖性

我只需要一个DLL
System.Web.Mvc.DLL
,因为
服务器
类就在那里

我尝试从以下路径引用DLL:

C:\ProgramFiles(x86)\Microsoft ASP.NET\ASP.NET Web Stack 5\Packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45

但是该DLL在
System.Web.Mvc
命名空间中没有
Server

我在我的机器上的任何其他地方都看不到这个DLL


我可以从哪里引用此DLL?过去这很容易。如果您想在2010年之前只参考MVC,那么就很容易了。

您的项目中没有必要使用System.Web.MVC-assembly来使用Server.Mappath。您只需要在项目中引用System.Web,就可以了

var path = System.Web.HttpContext.Current.Server.MapPath("default.aspx");
如果我将NuGet软件包Microsoft.AspNet.Mvc安装到该类库中,我还必须首先安装Microsoft.AspNet.WebPages软件包,该软件包可能具有进一步的依赖性

是的,这自2010年以来一直没有改变。但是NuGet通过安装要引用的文件并在项目中添加对这些文件的引用,以及在一个简单的步骤中添加任何依赖的NuGet包,使它变得更加容易

我可以从哪里引用此DLL

NuGet安装的文件物理上位于名为
\packages
的目录中的根目录下(与解决方案文件所在的位置相同)

但是,当您安装NuGet包时,NuGet会自动为您添加对文件的引用,因此,除非出现问题,否则无需处理这些文件

例如,要安装,只需在PackageManager控制台中运行以下命令

PM> Install-Package Microsoft.AspNet.Mvc -Version 5.2.3 
它将安装MVC的5.2.3版及其所有依赖项,并从
.csproj
文件中引用这些DLL


进一步阅读:

您不需要System.Web.Mvc。为此,请参阅这里是
System.Web
的一部分(名称空间和汇编)。它不是MVC特有的。此外,还可以使用一个更健壮的解决方案,因为它不是特定于web服务器的。另请参见前面关于SO上的2之间差异的问题:@Esko谢谢。请写下这句话作为回答?@Igor这两个程序集——System.Web.dll和System.Web.Mvc.dllNo,NuGet在2010年并不存在。其次,在我的问题中,我根本没有问任何我熟悉的关于NuGet的基础知识。我没有说NuGet存在于2010年,但它的引入确实使引用DLL及其依赖关系的概念变得更容易。我不确定我是否理解你的问题,因为如果你熟悉NuGet,这似乎是常识。依赖项是由NuGet安装到您的项目中的,它还会自动向它们添加项目引用,因此询问它们在哪里似乎表明您正在尝试手动执行NuGet已经自动执行的操作。大多数依赖项不再从系统级别的公共位置引用。