Saltar al contenido

Cómo obtener el directorio raíz del proyecto en asp.net core. Directory.GetCurrentDirectory() no parece funcionar correctamente en una Mac

Este dilema se puede tratar de diversas formas, pero te dejamos la resolución más completa para nosotros.

Solución:

Dependiendo de dónde se encuentre en la tubería del cernícalo, si tiene acceso a IConfiguration (Startup.cs constructor) o IWebHostEnvironment (antes IHostingEnvironment) puede inyectar el IWebHostEnvironment en su constructor o simplemente solicite el key de la configuración.

Inyectar IWebHostEnvironment en Startup.cs Constructor

public Startup(IConfiguration configuration, IWebHostEnvironment env)

     var contentRoot = env.ContentRootPath;

Uso de IConfiguration en Startup.cs Constructor

public Startup(IConfiguration configuration)

     var contentRoot = configuration.GetValue(WebHostDefaults.ContentRootKey);

Trabajando en .Net Core 2.2 y 3.0 a partir de ahora.

Para obtener el directorio raíz de los proyectos dentro de un Controlador:

  • Crear una propiedad para el entorno de alojamiento.

    private readonly IHostingEnvironment _hostingEnvironment;
    
  • Agregue Microsoft.AspNetCore.Hosting a su controlador

    using Microsoft.AspNetCore.Hosting;
    
  • Registrar el servicio en el constructor.

    public HomeController(IHostingEnvironment hostingEnvironment) 
        _hostingEnvironment = hostingEnvironment;
    
    
  • Ahora, para obtener la ruta raíz del proyecto

    string projectRootPath = _hostingEnvironment.ContentRootPath;
    

Para obtener el “wwwroot” camino, uso

_hostingEnvironment.WebRootPath

En algunos casos _hostingEnvironment.ContentRootPath y System.IO.Directory.GetCurrentDirectory() objetivos al directorio de origen. Aquí hay un error al respecto.

La solución propuesta allí me ayudó.

Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *