Etiqueta: Visual Studio

  • Establecer Environment Variable en Package Manager Console

    Hola amigos, en este caso me encontraba trabajando con un proyecto en Visual Studio 2022 que tengo divido diversas capas, una es la Data Access Layer (DAL) o capa d de acceso a datos, dicha capa es la encargada de manejar el contexto para Entity Framework Core.

    El problema es que tengo un connection string para local y otro para Release que a su vez se obtiene desde otro proyecto (Web API), el código es el siguiente:

     public class DesignTimeDbContextFactory : IDesignTimeDbContextFactory<ApplicationDbContext>
     {
         public ApplicationDbContext CreateDbContext(string[] args)
         {
    
             bool isDevelopment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") == "Development";
    
             var connectionStringDev = "/../DiarioWebAPI/appsettings.json";
             var connectionStringRelease = "/../DiarioWebAPI/appsettings.Release.json";
     
             var connection = isDevelopment ? connectionStringDev : connectionStringRelease;
    
    
             IConfigurationRoot configuration = new ConfigurationBuilder()
                 .SetBasePath(Directory.GetCurrentDirectory())
                 .AddJsonFile(@Directory.GetCurrentDirectory() + connection).Build();
             var builder = new DbContextOptionsBuilder<ApplicationDbContext>();
             var connectionString = configuration.GetSection("ConnectionStrings")["defaultConnection"];
             builder.UseSqlServer(connectionString);
             return new ApplicationDbContext(builder.Options);
              
         }
    
    
     }
    

    Como podemos ver, dependiendo el valor de [ASPNETCORE_ENVIRONMENT] tomara la configuración de uno u otro archivo, al hacer un despliegue o publish, esta variable se puede establecer muy fácilmente, sin embargo, no sabía cómo realizarlo en la Package Manager Console, lo cual simplemente se resuelve ejecutando el siguiente comando, sea para development, production etc:

    PM> $env:ASPNETCORE_ENVIRONMENT='Production'
    PM> $env:ASPNETCORE_ENVIRONMENT='Development'

    Después de esto, mi comando add-migration y posteriormente updata-database funcionó correctamente con las cadenas de conexión adecuadas.

  • Error «npm no se reconoce como un comando interno o externo»

    Hola amigos, en esta ocasión me encontraba agregando un proyecto de angular a mi solución en Visual Studio 2022 que contenía otros proyectos como una Web API y biblioteca de clases, al instalar Node JS y Angular y hacer un BUILD inicial a mi proyecto de Angular desde VS, me mostró el siguiente error:

    «npm» no se reconoce como un comando interno o externo.

    Por lo cual googleando lo resolví de la siguiente manera en Windows 11:

    • Ir a Configuración > Sistema > Configuración avanzada del sistema

    Nos vamos a la pestaña Opciones avanzadas y al final viene la opción «Variables de Entorno»

    Nos vamos a la opción de Path y le damos editar, añadimos una Nueva línea con el siguiente dato que es la ruta de instalación de nodejs:

    C:\Archivos de programa\nodejs\

    Y nos quedará algo como esto:

    Ahora guardamos todos los cambios y tu proyecto se ejecutará sin problemas, es recomendable reiniciar, pero a mí me funcionó sin reiniciar mi equipo.