问题描述
我正在关注本指南在第4步中,系统要求我在 project.json 文件中添加三行(我这样做了,然后运行 dotnet restore 得到很多更新的软件包).
I'm following this guide and in step 4, I'm asked to add three lines to the project.json file (which I did and then ran dotnet restore getting a lot of updated packages).
当我在 Configure 方法中输入三行时,所有行上都出现红线.无法识别该方法,未提供智能感知等.
When I enter the three lines in the Configure method, I get red lines on all of them. The methods aren't recognized, no intellisense provided etc.
我还注意到,在本指南的示例中,方法签名仅采用 IApplicationBuilder 的一个参数,而生成的参数是使用( yo aspnet 命令生成的) )看起来像这样.
I also noticed that in the example in the guide, the method signature only takes one parameter of IApplicationBuilder, whereas the one I got generated (using the yo aspnet command) looks like this.
Configure(IApplicationBuilder, IHostingEnvironment, ILoggerFactory);
我不确定该如何解决.我的猜测是,此过程中有一个新版本的东西(Yo,Generators,Core等),但我不确定.
I'm not sure how to resolve it. My guess is that there's a new version of something in the process (Yo, Generators, Core etc.) but I'm not entirely sure.
我还找到了此博客方法签名与我得到的签名相似.但是,它的作者提出了对我不起作用的相同语法.我猜这是引用错误的库的问题.我该如何解决这个问题?
I've also found this blog where the method signature resembles the one I'm getting. However, the author of it suggest the same syntax that doesn't work for me. I'm guessing it's a matter of referencing the wrong libraries. How do I approach the issue?
推荐答案
从链接的教程中的屏幕截图来看,它与ASP.NET Core RC1有关(当时称为ASP.NET 5 r1-final).您可以在包和名称空间名称上轻松识别这一点. Microsoft.AspNet.*
一直使用到rc1.
Judging from the screenshots in the linked tutorial, its about ASP.NET Core RC1 (back then called ASP.NET 5 r1-final). You can easily recognize this on the package and namespace names. Microsoft.AspNet.*
is used until rc1.
从RC2开始,这些软件包已重命名为Microsoft.AspNetCore.*
,以使其更清楚其新框架,并且与旧版ASP.NET的兼容性不高.
Starting with RC2 the packages were renamed to Microsoft.AspNetCore.*
to make it clearer its a new framework and not that much compatible with legacy ASP.NET.
UseIISPlatformHandler()
不再存在,它现在在Main(...)
方法中的UseIISIntegration()
中:
The UseIISPlatformHandler()
isn't there anymore, it's now UseIISIntegration()
within the Main(...)
method:
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"
.
And the packages the package is Microsoft.AspNetCore.Server.IISIntegration": "1.0.0"
and "Microsoft.AspNetCore.Server.Kestrel": "1.0.1"
. For static files it's: "Microsoft.AspNetCore.StaticFiles": "1.0.0"
.
对于Configure
重载:Configure(IApplicationBuilder);
是默认值,但是您可以添加在依赖项注入系统中注册的任何其他类型(在ConfigureServices
方法中),因为它是一个约定俗成的系统(startup.cs ).
For the Configure
overload: Configure(IApplicationBuilder);
is default one, but you can add any other type which is registered with the dependency injection system (in ConfigureServices
method), as it's a convention system (the startup.cs).
这篇关于找不到方法app.UseStaticFiles()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!