找不到方法 app.UseStaticFiles()
Can't find method app.UseStaticFiles()
我正在关注 this guide,在第 4 步中,系统要求我在 project.json 文件中添加三行(我做了并且然后 运行 dotnet restore 得到很多更新的包。
当我在 Configure 方法中输入三行时,我在所有这些行上都看到了红线。无法识别方法,未提供智能感知等。
我还注意到在指南的示例中,方法签名只采用 IApplicationBuilder 的一个参数,而我生成的那个(使用 yo aspnet 命令)看起来像这样。
Configure(IApplicationBuilder, IHostingEnvironment, ILoggerFactory);
我不确定如何解决它。我的猜测是一些东西的新版本正在开发中(Yo、Generators、Core 等),但我不完全确定。
我还发现 this blog 方法签名与我得到的签名相似。但是,它的作者提出了对我不起作用的相同语法。我猜这是引用错误库的问题。我该如何处理这个问题?
从链接教程中的屏幕截图来看,它是关于 ASP.NET Core RC1(当时称为 ASP.NET 5 r1-final)的。您可以在包和名称空间名称上轻松识别这一点。 Microsoft.AspNet.*
一直使用到 rc1。
从 RC2 开始,这些包被重命名为 Microsoft.AspNetCore.*
,以使其更清楚地表明它是一个新框架,并且与旧版 ASP.NET 不太兼容。
UseIISPlatformHandler()
不存在了,现在 UseIISIntegration()
在 Main(...)
方法中:
public class Program
{
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}
}
而包是 Microsoft.AspNetCore.Server.IISIntegration": "1.0.0"
和 "Microsoft.AspNetCore.Server.Kestrel": "1.0.1"
。对于静态文件,它是:"Microsoft.AspNetCore.StaticFiles": "1.0.0"
.
对于 Configure
重载:Configure(IApplicationBuilder);
是默认的,但是您可以添加在依赖注入系统中注册的任何其他类型(在 ConfigureServices
方法中),因为它是约定系统(startup.cs)。
对于 Asp.Net 核心 MVC,您需要安装 Nuget 包
install-package "Microsoft.AspNetCore.StaticFiles"
该指南已过时。不幸的是,更新后的 .Net 核心不再使用 project.json。相反,它现在是 csproj 文件的一部分。要添加静态文件库,您必须使用 nuget 数据包管理器将其添加到项目中。当您重建时,您将在该库的 csproj 文件中看到一个条目。我认为 project.json 是一个很好的想法,它与核心选择加入方法相一致,因为它将允许 intellisense 启动以帮助您 select 来自可用的库。由于无法在解决方案中直接编辑 csproj 文件,因此您失去了该功能。
我正在关注 this guide,在第 4 步中,系统要求我在 project.json 文件中添加三行(我做了并且然后 运行 dotnet restore 得到很多更新的包。
当我在 Configure 方法中输入三行时,我在所有这些行上都看到了红线。无法识别方法,未提供智能感知等。
我还注意到在指南的示例中,方法签名只采用 IApplicationBuilder 的一个参数,而我生成的那个(使用 yo aspnet 命令)看起来像这样。
Configure(IApplicationBuilder, IHostingEnvironment, ILoggerFactory);
我不确定如何解决它。我的猜测是一些东西的新版本正在开发中(Yo、Generators、Core 等),但我不完全确定。
我还发现 this blog 方法签名与我得到的签名相似。但是,它的作者提出了对我不起作用的相同语法。我猜这是引用错误库的问题。我该如何处理这个问题?
从链接教程中的屏幕截图来看,它是关于 ASP.NET Core RC1(当时称为 ASP.NET 5 r1-final)的。您可以在包和名称空间名称上轻松识别这一点。 Microsoft.AspNet.*
一直使用到 rc1。
从 RC2 开始,这些包被重命名为 Microsoft.AspNetCore.*
,以使其更清楚地表明它是一个新框架,并且与旧版 ASP.NET 不太兼容。
UseIISPlatformHandler()
不存在了,现在 UseIISIntegration()
在 Main(...)
方法中:
public class Program
{
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}
}
而包是 Microsoft.AspNetCore.Server.IISIntegration": "1.0.0"
和 "Microsoft.AspNetCore.Server.Kestrel": "1.0.1"
。对于静态文件,它是:"Microsoft.AspNetCore.StaticFiles": "1.0.0"
.
对于 Configure
重载:Configure(IApplicationBuilder);
是默认的,但是您可以添加在依赖注入系统中注册的任何其他类型(在 ConfigureServices
方法中),因为它是约定系统(startup.cs)。
对于 Asp.Net 核心 MVC,您需要安装 Nuget 包
install-package "Microsoft.AspNetCore.StaticFiles"
该指南已过时。不幸的是,更新后的 .Net 核心不再使用 project.json。相反,它现在是 csproj 文件的一部分。要添加静态文件库,您必须使用 nuget 数据包管理器将其添加到项目中。当您重建时,您将在该库的 csproj 文件中看到一个条目。我认为 project.json 是一个很好的想法,它与核心选择加入方法相一致,因为它将允许 intellisense 启动以帮助您 select 来自可用的库。由于无法在解决方案中直接编辑 csproj 文件,因此您失去了该功能。