with net how generate asp c# asp.net-core visual-studio-code yo

c# - net - swagger web api



No se puede encontrar el método app.UseStaticFiles() (3)

Estoy siguiendo esta guía y en el paso 4, me piden que agregue tres líneas al archivo project.json (lo cual hice y luego ejecuté la restauración de dotnet obteniendo una gran cantidad de paquetes actualizados).

Cuando ingreso las tres líneas en el método Configure , obtengo líneas rojas en todos ellos. Los métodos no son reconocidos, no se proporciona intellisense, etc.

También noté que en el ejemplo de la guía, la firma del método solo toma un parámetro de IApplicationBuilder , mientras que el que obtuve generado (usando el comando yo aspnet ) se ve así.

Configure(IApplicationBuilder, IHostingEnvironment, ILoggerFactory);

No estoy seguro de cómo resolverlo. Supongo que hay una nueva versión de algo en el proceso (Yo, Generators, Core, etc.) pero no estoy del todo seguro.

También encontré este blog donde la firma del método se asemeja a la que estoy obteniendo. Sin embargo, el autor sugiere la misma sintaxis que no funciona para mí. Supongo que se trata de hacer referencia a las bibliotecas incorrectas. ¿Cómo abordo el problema?


A juzgar por las capturas de pantalla en el tutorial vinculado, se trata de ASP.NET Core RC1 (en aquel entonces llamado ASP.NET 5 r1-final). Puede reconocerlo fácilmente en el paquete y en los nombres del espacio de nombres. Microsoft.AspNet.* Se usa hasta rc1.

Comenzando con RC2, los paquetes se renombraron a Microsoft.AspNetCore.* Para hacerlo más claro es un nuevo marco y no es muy compatible con ASP.NET heredado.

El UseIISPlatformHandler() ya no está allí, ahora es UseIISIntegration() dentro del método Main(...) :

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

Y los paquetes, el paquete es Microsoft.AspNetCore.Server.IISIntegration": "1.0.0" y "Microsoft.AspNetCore.Server.Kestrel": "1.0.1" . Para los archivos estáticos, es: "Microsoft.AspNetCore.StaticFiles": "1.0.0" .

Para la Configure sobrecarga: Configure(IApplicationBuilder); es el predeterminado, pero puede agregar cualquier otro tipo que esté registrado con el sistema de inyección de dependencia (en el método ConfigureServices ), ya que es un sistema convencional (el startup.cs).


Esa guía está desactualizada. El núcleo .Net actualizado ya no usa project.json, lo cual es desafortunado. En cambio, ahora es parte del archivo csproj. Y para agregar la biblioteca de archivos estáticos, debe agregarla al proyecto usando nuget packet manager. Y cuando reconstruya, verá una entrada en el archivo csproj para esa biblioteca. Creo que el proyecto.json fue una gran idea que estaba en línea con la metodología de aceptación central, ya que permitiría que Intellisense actuara para ayudarlo a seleccionar entre las bibliotecas disponibles. Y como el archivo csproj no se puede editar directamente en la solución, se pierde esa característica.


Para Asp.Net core MVC necesita instalar el paquete Nuget

install-package "Microsoft.AspNetCore.StaticFiles"