es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo establecer el directorio de trabajo predeterminado en VS2022 para ASP.NET Core Web API.

En VS2022, he creado una nueva API web ASP.NET Core. La estoy ejecutando a través de IISExpress.

En el archivo program.cs he añadido estas líneas de código:

public static void Main(string[] args)
{
    var currentDirectory = Directory.GetCurrentDirectory();
    Console.WriteLine(currentDirectory);

    CreateHostBuilder(args).Build().Run();
}

El directorio de trabajo actual siempre es el directorio del proyecto, mientras que espero que sea el directorio de salida. He intentado establecer el directorio de trabajo en launchsettings.json sin éxito.

En VS2019 esto funcionaba como esperaba.

¿Me falta alguna configuración en algún lugar?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en ASP.NET Core y Visual Studio 2022, tu problema podría estar relacionado con un cambio en la configuración de lanzamiento predeterminada para las API web de ASP.NET Core. En VS2019, la configuración de lanzamiento predeterminada establecería el directorio actual como el directorio de salida, pero esto puede no ser el caso en VS2022.

    Para resolver este problema, podrías intentar agregar el siguiente código a tu archivo program.cs:

    public static void Main(string[] args)
    {
        var builder = WebApplication.CreateBuilder(args);
    
        builder.Host.UseContentRoot(Directory.GetCurrentDirectory());
    
        var app = builder.Build();
    
        app.Run();
    }
    

    Este código establece la raíz del contenido para el generador del host en el directorio actual, lo que debería establecer el directorio de trabajo actual como el directorio de salida al iniciar la aplicación a través de IISExpress.

    Alternativamente, podrías intentar modificar el archivo launchSettings.json para establecer explícitamente el directorio de trabajo. Por ejemplo:

    {
      "profiles": {
        "IIS Express": {
          "commandName": "IISExpress",
          "launchBrowser": true,
          "environmentVariables": {
            "ASPNETCORE_ENVIRONMENT": "Development"
          },
          "workingDirectory": "ruta/al/directorio/de/salida"
        }
      }
    }
    

    Al establecer la propiedad workingDirectory en la ruta de tu directorio de salida, esto también debería establecer el directorio de trabajo actual como el directorio correcto al iniciar a través de IISExpress.

    Si ninguna de estas soluciones funciona, puede haber un problema más profundo con la instalación de tu VS2022 o la configuración del proyecto. En ese caso, es posible que desees comunicarte con el equipo de soporte de Visual Studio o consultar la documentación para obtener orientación más específica.

Comments are closed.