找不到方法app.UseStaticFiles()

我正在按照本指南进行操作 ,在第4步中,我被要求在project.json文件中添加三行(我做了然后运行dotnet restore获取了大量更新的包)。

当我在Configure方法中输入三行时,我会在所有这些行中得到红线。 这些方法无法识别,无智能感知等。

我还注意到,在指南的示例中,方法签名只接受IApplicationBuilder的一个参数,而我生成的(使用yo aspnet命令)看起来像这样。

Configure(IApplicationBuilder, IHostingEnvironment, ILoggerFactory); 

我不知道如何解决它。 我的猜测是在这个过程中有一个新版本的东西(Yo,Generators,Core等),但我不完全确定。

我也发现这个博客的方法签名类似于我得到的那个。 但是,它的作者建议使用与我无关的相同语法。 我猜这是引用错误库的问题。 我该如何解决这个问题?

从链接教程中的截图来看,它关于ASP.NET Core RC1(当时称为ASP.NET 5 r1-final)。 您可以在包名称和命名空间名称上轻松识别这一点。 Microsoft.AspNet.*一直使用到rc1。

从RC2开始,这些包被重命名为Microsoft.AspNetCore.* ,以使其更清晰地显示其新框架,并且与旧版ASP.NET不太兼容。

UseIISPlatformHandler()不再存在,它现在是Main(...)方法中的UseIISIntegration()

 public class Program { public static void Main(string[] args) { var host = new WebHostBuilder() .UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory()) .UseIISIntegration() .UseStartup() .Build(); host.Run(); } } 

软件包是Microsoft.AspNetCore.Server.IISIntegration": "1.0.0""Microsoft.AspNetCore.Server.Kestrel": "1.0.1" 。对于静态文件,它是: "Microsoft.AspNetCore.StaticFiles": "1.0.0"

对于Configure overload: Configure(IApplicationBuilder); 是默认值,但您可以添加在dependency injection系统中注册的任何其他类型(在ConfigureServices方法中),因为它是一个约定系统(startup.cs)。

对于Asp.Net核心MVC,您需要安装Nuget包

install-package“Microsoft.AspNetCore.StaticFiles”

该指南已过时。 更新的.Net核心不再使用project.json,这是不幸的。 相反,它现在是csproj文件的一部分。 要添加静态文件库,您必须使用nuget数据包管理器将其添加到项目中。 当你重建时,你会在csproj文件中看到该库的一个条目。 我认为project.json是一个好主意,它与核心选择方法一致,因为它允许智能感知来帮助您从可用的库中进行选择。 由于csproj文件无法在解决方案中直接编辑,因此您将失去该function。