0

First of all this question is not same issue with dotnet publish doesn´t publish correct appsettings.{env.EnvironmentName}.json and i am sure there is no problem with name of environment.

os: linux(ubuntu 14.04)

dotnet --version: 1.0.3

Shell script:

export ASPNETCORE_ENVIRONMENT=Cloud9

cd ../../src/Project

dotnet restore

dotnet publish -c Debug -o bin/Debug/out/

cp ../../.config/Project /appsettings.Cloud9.json bin/Debug/out/ #copy settings file into publish directory

dotnet bin/Debug/out/Project.dll --urls "http://0.0.0.0:8080"

When i run above script it successfully serves site but with appsettings.json values instead of appsettings.Cloud9.json.

Here is my Startup.cs constructor and Program.cs:

    //Sturtup.cs
    public IConfigurationRoot Configuration { get; }
    public Startup(ILoggerFactory loggerFactory, IHostingEnvironment environment)
    {
        var builder = new ConfigurationBuilder()
            .SetBasePath(environment.ContentRootPath)
            .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
            .AddJsonFile($"appsettings.{environment.EnvironmentName}.json", optional: true);

        builder.AddEnvironmentVariables();
        Configuration = builder.Build();
    }

    //Program.cs
    public static void Main(string[] args)
    {
        var config = new ConfigurationBuilder()
            .AddCommandLine(args)
            .Build();
        var host = new WebHostBuilder()
            .UseKestrel()
            .UseContentRoot(Directory.GetCurrentDirectory())
            .UseStartup<Startup>()
            .UseConfiguration(config)
            .Build();

        host.Run();
    }

A note: if i execute dotnet run --urls ... without publish it runs as expected.

Second note: i see appsettings.Cloud9.json in the out directory.

adem caglin
  • 22,700
  • 10
  • 58
  • 78

1 Answers1

1

Solved after adding cd ./bin/Debug/out. So correct script is:

export ASPNETCORE_ENVIRONMENT=Cloud9
cd ../../src/Project
dotnet restore
dotnet publish -c Debug -o bin/Debug/out/  
cp ../../.config/Project /appsettings.Cloud9.json bin/Debug/out/

Key point:

cd ./bin/Debug/out
dotnet Project.dll --urls "http://0.0.0.0:8080"
adem caglin
  • 22,700
  • 10
  • 58
  • 78