在我的一个类库中,我希望只调用System.Web.Mvc.Server.MapPath(string path)
。
如果我将NuGet包Microsoft.AspNet.Mvc
安装到该类库中,我必须首先安装Microsoft.AspNet.WebPages
包,这可能还有其他依赖关系。
我只想要单个DLL System.Web.Mvc.dll
,因为Server
类就在那里。
我尝试从路径中引用DLL:
C:\ Program Files(x86)\ Microsoft ASP.NET \ ASP.NET Web Stack 5 \ Packages \ Microsoft.AspNet.Mvc.5.2.3 \ lib \ net45
但该DLL在Server
命名空间中没有System.Web.Mvc
类。
我在我的机器上的任何其他地方都没有看到这个DLL。
我在哪里可以引用此DLL?在过去,它过去很容易。如果你想直到2010年才引用MVC,那就很容易了。
答案 0 :(得分:1)
您的项目中不需要使用System.Web.Mvc-assembly来使用Server.Mappath。您只需要在项目中引用 System.Web 即可
var path = System.Web.HttpContext.Current.Server.MapPath("default.aspx");
答案 1 :(得分:0)
如果我将NuGet包Microsoft.AspNet.Mvc安装到该类库中,我必须首先安装Microsoft.AspNet.WebPages包,这可能还有其他依赖关系。
是的,自2010年以来这一点都没有改变。但是NuGet通过安装两个文件来引用和添加对项目中的那些文件的引用更加容易。 只需一个简单步骤即可添加任何相关的NuGet包。
我在哪里可以参考这个DLL?
NuGet安装的文件实际位于名为\packages
的目录下的根目录(解决方案文件所在的位置)下。
但是当您安装NuGet软件包时,NuGet 会自动为您添加对文件的引用,因此除非出现问题,否则无需使用它们。
例如,要安装Microsoft.AspNet.Mvc,只需在Package Manager控制台中运行以下命令即可。
PM> Install-Package Microsoft.AspNet.Mvc -Version 5.2.3
将安装MVC的5.2.3及其所有依赖项,并引用.csproj
文件中的这些DLL。