我正在关注this guide,在第4步中,我被要求在 project.json 文件中添加三行(我做了然后运行 dotnet restore 获得大量更新的包。)
当我在 Configure 方法中输入三行时,我会在所有这些行中得到红线。这些方法无法识别,也没有智能感知等。
我还注意到,在指南的示例中,方法签名只接受 IApplicationBuilder 的一个参数,而我生成的参数(使用 yo aspnet 命令) )看起来像这样。
Configure(IApplicationBuilder, IHostingEnvironment, ILoggerFactory);
我不确定如何解决它。我的猜测是在这个过程中有一个新版本的东西(Yo,Generators,Core等),但我不完全确定。
我还发现了this blog,其中方法签名类似于我得到的签名。但是,它的作者提出了相同的语法,对我不起作用。我猜这是引用错误库的问题。我该如何处理这个问题?
答案 0 :(得分:4)
对于Asp.Net核心MVC,您需要安装Nuget包
install-package" Microsoft.AspNetCore.StaticFiles"
答案 1 :(得分:3)
该指南已过时。更新的.Net核心不再使用project.json,这是不幸的。相反,它现在是csproj文件的一部分。要添加静态文件库,您必须使用nuget数据包管理器将其添加到项目中。当你重建时,你会在csproj文件中看到该库的一个条目。我认为project.json是一个很好的主意,它与核心选择方法一致,因为它允许智能感知来帮助您从可用的库中进行选择。由于csproj文件无法在解决方案中直接编辑,因此您将失去该功能。
答案 2 :(得分:1)
从链接教程中的截图来看,它关于ASP.NET Core RC1(当时称为ASP.NET 5 r1-final)。您可以在包名称和命名空间名称上轻松识别它。直到rc1使用Microsoft.AspNet.*
。
从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
方法中),因为它&#39 ;一个常规系统(startup.cs)。