Aspnetcore: VS рдореЗрдВ AspNetCore рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП web.config рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо рд╕рдХреНрд╖рдо рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 1 рдордИ 2017  ┬╖  91рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: dotnet/aspnetcore

рдореБрдЭреЗ рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП рдЙрдкрд╕рд░реНрдЧ рдХрд░рдиреЗ рджреЗрдВ рдХрд┐ рдореИрдВ web.config рдХрд╛ рдкреНрд░рд╢рдВрд╕рдХ рдирд╣реАрдВ рд╣реВрдВ рд▓реЗрдХрд┐рди IIS рдореЗрдВ AspNetCore рдРрдкреНрд╕ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрднрд╡ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЦрд░рд╛рдм рд╣реИред

AspNetCore рдХреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рдгрд╛рд▓реА ASPNETCORE_ENVIRONMENT рдЪрд░ рдХреЗ рдЗрд░реНрдж-рдЧрд┐рд░реНрдж рдШреВрдорддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд▓реЛрдб рдФрд░ рд▓рд╛рдЧреВ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдЗрд╕ рдЪрд░ рдХреЛ рд╕реЗрдЯ рдХрд░рдирд╛ рдПрдХ рджреБрдГрд╕реНрд╡рдкреНрди рд╣реИ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ рдЬрд╛рдирд╛ рд╣реИ, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рднреНрд░рдо рд╣реИ:

рд╕рдорд╕реНрдпрд╛ рдХреА рдЬрдбрд╝ 2 рд╕рдорд╕реНрдпрд╛рдУрдВ рддрдХ рдЙрдмрд▓рддреА рд╣реБрдИ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИ:

1) web.config рд░реВрдкрд╛рдВрддрд░рд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ VS рдореЗрдВ ASP.NET рдХреЛрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВ
2) ASPNETCORE_ENVIRONMENT рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдЙрдЪрд┐рдд рддрд░реАрдХрд╛ web.config . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ

рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ ASPNETCORE_ENVIRONMENT рд╕реЗрдЯ рдХрд░рдирд╛ рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЗрд╕реЗ рдПрдХ рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред web.config рд╕реНрд╡рдпрдВ рдирд┐рд╣рд┐рдд рд╡рд┐рдиреНрдпрд╛рд╕ рд╣реБрдЖ рдХрд░рддрд╛ рдерд╛ред рд╡реИрд╢реНрд╡рд┐рдХ рдПрдирд╡реА рдЪрд░ рдкрд░ рдпрд╣ рдирд┐рд░реНрднрд░рддрд╛ рдЖрдИрдЖрдИрдПрд╕ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдЪреНрдЫреА рдирд╣реАрдВ рд╣реИред

рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЖрдИрдЖрдИрдПрд╕ рдкреНрд░рдХрд╛рд╢рди рдХрд╣рд╛рдиреА рдЪрд┐рдВрддрд╛ рдХрд╛ рд╡рд┐рд╖рдп рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдЬреИрд╕реЗ рдХрдИ рджреЗрд╡ рдЬреЛ рдПрд╕реНрдкрдиреЗрдЯрдХреЛрд░ рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдореМрдЬреВрджрд╛ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдХрджрдо рд╕реЗ рдХрджрдо рдЙрдард╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдпрд╣ рдХрд╣рд╛рдиреА рдЕрддреНрдпрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ рдФрд░ рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред

рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдЬрд╣рд╛рдВ рдореБрдЭреЗ web.config рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: https://github.com/aspnet/Home/issues/1701#issuecomment -298273962

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдкрд╣рд▓реА рдкреЛрд╕реНрдЯ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕рд╣рдорддред рдпрд╣ рдбрд┐рдЬрд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рдХрд╛рдлреА рд▓рдЪреАрд▓рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЕрдВрдд рдореЗрдВ рдЗрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рдХрдард┐рди рд╣реЛ рдЧрдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдРрдк рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдЖрдИрдЖрдИрдПрд╕ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддрд╛ рд╣реВрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдпрд╣ рд╕реНрдерд╛рдиреАрдп рдЖрдИрдЖрдИрдПрд╕ (рдлрд╝реЛрд▓реНрдбрд░ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рдкрд░ рдЪрд▓рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ web.config рдореЗрдВ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдлрд┐рд░ рдореБрдЭреЗ рдЗрд╕реЗ рдЙрддреНрдкрд╛рджрди рдпрд╛ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рджреМрд░рд╛рди рдЬреЛ рдХреБрдЫ рднреА рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрд╣реБрдд рдЖрдо рдХрд╛рдоред рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдпрд╣ рдЕрд╕рдВрднрд╡ рд╣реИ, рд╣реИ рдирд╛? рдореБрдЭреЗ рджреВрд░рд╕реНрде рд╕рд░реНрд╡рд░ рдкрд░ web.config рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рд╕реЗрдЯрд┐рдВрдЧ рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рдХреЛ "рдбреЙрдЯрдиреЗрдЯ рдкрдмреНрд▓рд┐рд╢" (рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд╢рд┐рдд рд▓рдХреНрд╖реНрдп рдХреЗ рд▓рд┐рдП) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдорд░реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:

dotnet publish ... -environment=Production

dotnet publish web.%Enviroment%.config (Web.Production.config, Web.Development.config) рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЦреЛрдЬ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ web.config рдХреЗ рд╕рд╛рде рдорд░реНрдЬ (рд░реВрдкрд╛рдВрддрд░рд┐рдд) рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЕрдВрдд рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ ASPNETCORE_ENVIRONMENT рдХрд╛ рд╕рд╣реА рдорд╛рди рд╣реЛрдЧрд╛:

    <environmentVariables>
        <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="value passed to publish" />
    </environmentVariables>         

рд╕рднреА 91 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ, рдореИрдВ рд╕рд╣рдордд рд╣реВрдВред рд╣рдореЗрдВ рдмрд╕ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдЖрдИрдЖрдИрдПрд╕ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд▓рд┐рдП рд╣реИред рджреВрд╕рд░реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ web.config рд░рдЦрдиреЗ рд╕реЗ рджреВрд░ рдЪрд▓реЗ рдЧрдП рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

/рд╕реАрд╕реА @sayedihashimi

рдХреНрдпрд╛ рдпрд╣ рд╕рд┐рд░реНрдл рдЖрдИрдЖрдИрдПрд╕ рдХреЗ рд▓рд┐рдП рд╣реИ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреА рдЬрдбрд╝ ASPNETCORE_ENVIRONMENT рд╡реИрд░рд┐рдПрдмрд▓ рдлрд╝реБрд▓рд╕реНрдЯреЙрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реИ рддрд╛рдХрд┐ рдХрд┐рд╕реА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЛ рдпрд╣ рдкрддрд╛ рдЪрд▓ рд╕рдХреЗ рдХрд┐ рд╡рд╣ рдХрд┐рд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╣реА рдЖрдИрдЖрдИрдПрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдПрдХ рд╣реА рдмреЙрдХреНрд╕ рдкрд░ рд╣реЛрд╕реНрдЯ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрдЯреЗрдЬрд┐рдВрдЧ/рдХреНрдпреВрдП рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╣реА рдЖрдо рдкрд░рд┐рджреГрд╢реНрдп рд╣реИред рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ "рд╡рд╛рддрд╛рд╡рд░рдг" рдХреЗ рд╕рд╛рде 3 рдЯреАрдореЗрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╡реЗ рдЕрдкрдиреЗ рдХреЛрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдирд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╢рд╛рдЦрд╛ рддреИрдирд╛рдд рдХрд░реЗрдВ), рд▓реЗрдХрд┐рди рд╡реЗ рд╕рднреА рдПрдХ рд╣реА рдмреЙрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдпрджрд┐ рд╣рдо рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рдХреЛрдб рд▓реЗрддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ appsettings.json рдкреНрд░рддрд┐ рдкрд░рд┐рд╡реЗрд╢ рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

public Startup(IHostingEnvironment env) { var builder = new ConfigurationBuilder() .SetBasePath(env.ContentRootPath) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true) .AddEnvironmentVariables(); Configuration = builder.Build(); }
рдЙрдкрд░реЛрдХреНрдд рдкрд░рд┐рджреГрд╢реНрдп рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдкреНрд░рдгрд╛рд▓реА рдЪреМрдбрд╝рд╛ рд╣реИред рдЗрд╕рдХреЗ рд╕рд╛рдордиреЗ рдмреИрдареЗ IIS, nginix рдЖрджрд┐ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЕрджрд▓рд╛-рдмрджрд▓реА рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдЪрд▓рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред

рдЕрдзрд┐рдХрд╛рдВрд╢ рдмрд╛рд░ рдореИрдВрдиреЗ рдКрдкрд░ рджреЗрдЦрд╛ рд╣реИ, рдбреЙрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрдЭрд╛рд╡ рдЖрдП рд╣реИрдВ, рдпрд╛ рдРрдк рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдардкреБрддрд▓реА/рд╢реЗрдл рдЬреИрд╕реЗ рдХреБрдЫ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдХреЛрдИ рдРрдкрд╕реЗрдЯрд┐рдВрдЧ рди рд╣реЛред {env}ред рдЬреЗрд╕рди, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрде рдкреВрд░реНрдг рд╕реЗ рдмрдирд╛рддрд╛ рд╣реИ рдлреНрд░реЗрдорд╡рд░реНрдХ рдПрдорд╡реАрд╕реА рдЬреЛ рдмрд╣реБрдд рдХрдард┐рди рд╣реИред

@mindingdata рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрд╕ рддрд░реНрдХ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ Program.cs рдореЗрдВ рдкрд░реНрдпрд╛рд╡рд░рдг рдХрд╣рд╛рдВ рд╕реЗ рдЖрддрд╛ рд╣реИред рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдпрд╣ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рд┐рд░реНрдл рдПрдХ рддрд░реАрдХрд╛ рд╣реИ (рдореБрдЦреНрдп рддрд░реАрдХрд╛)ред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдЬрд╛рджреБрдИ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рджрд┐рди рдХреЗ рд╕рдордп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреБрдЫ рдФрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ UseEnvironment(environmentName) рдкрд░ WebHostBuidler рдкрд░ рдХреЙрд▓ рдХрд░реЗрдВ

рдмрд╕ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдЖрдИрдЖрдИрдПрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рд╣реИред рдРрдк рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди JSON рдХреЙрдиреНрдлрд┐рдЧ рд╕рд┐рд╕реНрдЯрдо рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рд╣реИ рдФрд░ рдореИрдВ рдЗрд╕рдХреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВред

рдЪреАрдЬреЛрдВ рдХреЛ рдФрд░ рдЦрд░рд╛рдм рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдореИрдВ рд╕рд┐рд╕реНрдЯрдо рдкрд░реНрдпрд╛рд╡рд░рдг рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП web.config рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рдмрд╕ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЬрдм рдореЗрд░рд╛ рд╕рд┐рд╕реНрдЯрдо рдкрд░реНрдпрд╛рд╡рд░рдг рд╕реЗрдЯрд┐рдВрдЧ "рд╡рд┐рдХрд╛рд╕" рдкрд░ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдореИрдВ рдЗрд╕реЗ web.config (рдиреАрдЪреЗ рдХреЗ рд░реВрдк рдореЗрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ "рдЙрддреНрдкрд╛рджрди" рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрднреА рднреА рд╕реЛрдЪрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИред (рдЖрдИрдЖрдИрдПрд╕ рдореЗрдВ рдЪрд▓ рд░рд╣реЗ ASP.NET рдХреЛрд░ рдРрдк)ред

<environmentVariables>
      <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Production" />
</environmentVariables>

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд╣реА рдЬрдЧрд╣ рд╣реИред рдореИрдВ рдПрдХ рдПрди-рдЯрд┐рдпрд░ рдбреЗрдореЛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛ рд╕рдХрддрд╛ рдХрд┐ рдореЗрд░реЗ рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕ рд▓реЗрдпрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ IHostingEnvironment рдХреЛ рдХреИрд╕реЗ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПред рд╡рд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдореИрдВ рдЕрдкрдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реВрдВ рдФрд░ рдЙрд╕ рдкрд░рдд рд╕реЗ рдХрдиреЗрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреА рдЬрд╛рджреВ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдСрдирдХреЙрдиреНрдлрд╝рд┐рдЧрд░рд┐рдВрдЧ рд╡рд┐рдзрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдирд╛ рдерд╛ред

рдореИрдВрдиреЗ рдзреАрдореА-рдЪреАрддрд╛ рдХреЛ рднреА рджреЗрдЦрд╛, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╡реАрдПрд╕ рд╡рд┐рдзрд┐ рдпрд╛ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ, рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реБрдП "рдбреАрдмрдЧ, рд░рд┐рд▓реАрдЬ" рдпрд╛ "рд╡рд┐рдХрд╛рд╕, рдЙрддреНрдкрд╛рджрди" рдХреА рд╡рд░реНрддрдорд╛рди рд╡рд┐рдзрд┐ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред

рдРрд╕реА рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдЬреЛ рдореБрдЭреЗ рдпрд╛рдж рдЖ рд░рд╣реА рд╣реИред рдПрдордПрд╕ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдХрд┐ рд╣рд░ рдХреЛрдИ рд╕рд┐рдВрдЧрд▓ рдЯрд┐рдпрд░ рдРрдкреНрд╕ рдмрдирд╛рдПред

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
           var builder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json");

            var config = builder.Build();
            var connstr = config.GetConnectionString("connStr");            
            optionsBuilder.UseSqlServer(connstr);
        }

рддреЛ рдХреНрдпрд╛ рдЗрд╕ рдкрд░ рдХреЛрдИ рдкреНрд░рдЧрддрд┐ рд╣реБрдИ рд╣реИ?

рд╣рдореЗрдВ рдЬрд╛рджреВ рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓рд┐рдП рдмрд┐рдирд╛ рдХрд┐рд╕реА рдРрдк рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ env рд╕реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

рд╣рд╛рдБ, рдореБрдЭреЗ рдЗрд╕ рдкрд░ рднреА рдХреБрдЫ рдкреНрд░рдЧрддрд┐ рдЪрд╛рд╣рд┐рдПред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореБрдЭреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╣реА рдмреЙрдХреНрд╕ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛ рд╣реИред

рдореИрдВрдиреЗ рдХрд╛рдлреА рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдЖрдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ред рдореБрдЦреНрдп appsettings.json рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдореИрдВ рдЕрдкрдирд╛ рд╡рд╛рдВрдЫрд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реВрдВ:

{
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "ActiveEnvironment": "Development"
}

Program.CS рдореЗрдВ, рдореИрдВ рдлрд┐рд░ рдПрдХ IConfiguration рдмрдирд╛рддрд╛ рд╣реВрдВ, рдФрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдкрд░реНрдпрд╛рд╡рд░рдг рдирд╛рдо рдХреЛ 'ActiveEnvironment' рдХреЗ рдорд╛рди рдкрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реВрдВред

public static void Main(string[] args)
{
    WebHost.CreateDefaultBuilder()
    .ConfigureAppConfiguration((hostingContext, config) =>
    {
        // Get the environment from our hostContext.
        var env = hostingContext.HostingEnvironment;
        config.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);

        // Build an initial configuration.
        IConfiguration Configuration = config.Build();

        // Set the environment name.
        env.EnvironmentName = Configuration.GetSection("ActiveEnvironment").Value;

        // Load the configuration file for our specific environment.
        config.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: false, reloadOnChange: true)
        .AddEnvironmentVariables();
    })
    .UseStartup<Startup>()
    .Build()
    .Run();
}

рдЬрд╛рд╣рд┐рд░ рд╣реИ, рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рд╡реЗрд╢реЛрдВ рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреЗ рд╕рдордп, 'ActiveEnvironment' рдХреЛ рддрджрдиреБрд╕рд╛рд░ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

@DaleMckeown рдореИрдВ рдХреБрдЫ рдРрд╕рд╛ рд╣реА рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рдерд╛ рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдЖрдкрдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдкреНрд░рд╢реНрди рдерд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП Microsoft.AspNetCore.WebHost рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдХреНрдпрд╛ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЕрднреА рднреА рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╡реЗрдм рдШрдЯрдХ рд╡рд╛рд▓реЗ рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ?

@Swazimodo рдореИрдВрдиреЗ рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИред рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╢рд░реНрдд рд╣реИ рдХрд┐ рдХрдВрд╕реЛрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реАрдХрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рд╣рдордиреЗ рдЗрд╕рдХрд╛ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рдЦреНрдпрд╛рд▓ рд░рдЦрд╛ред рд╣рдо рдЕрдкрдиреЗ рдмрд┐рд▓реНрдб рдПрдЬреЗрдВрдЯ рдХреЛ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрдЕрдк рдХрд░рддреЗ рд╣реИрдВ
рдкрд░реНрдпрд╛рд╡рд░рдг рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдлрд╝рд╛рдЗрд▓ рдФрд░ рд░реВрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░реЗрдВ
рдЗрд╕рдХреЗ рд╕рд╛рдеред рд╣рдорд╛рд░рд╛ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рд╡реЗрд╢ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдЬрд╝рд┐рдк рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо
рдХреЛ рддреИрдирд╛рдд рдХрд░реЗрдВред

рдереВ, 26 рдЕрдХреНрдЯреВрдмрд░, 2017 рдХреЛ рджреЛрдкрд╣рд░ 12:48 рдмрдЬреЗ, рдбреЗрд▓ рдореИрдХреЗрдЙрди рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

@Swazimodo https://github.com/swazimodo рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИ
рдПрдХ рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рд╢рд░реНрдд
рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реАрдХрд╛ рд╣реИ
рдХрдВрд╕реЛрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЗрд╕ рдереНрд░реЗрдб рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реА рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/aspnet/Home/issues/2019#issuecomment-339728441 , рдпрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
рд╕реВрддреНрд░
https://github.com/notifications/unsubscribe-auth/AAx4bT20JSb0XSzNBIAiiubq9mTVKbW5ks5swLf6gaJpZM4NMx25
.

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдкреЛрд╕реНрдЯ рдмрд┐рд▓реНрдб/рдЯреНрд╡реАрд╡рд┐рдВрдЧ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ? рдореИрдВрдиреЗ рдРрдк рд░реВрдЯ рдореЗрдВ рдПрдХ рдЦрд╛рд▓реА рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓ рдЫреЛрдбрд╝ рджреА рдФрд░ рдЗрд╕реЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░ рджрд┐рдпрд╛ред рдХреНрдпрд╛ рдореИрдВ рдХреБрдЫ рднреВрд▓ рдЧрдпрд╛?

рдкрд╣рд▓реА рдкреЛрд╕реНрдЯ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕рд╣рдорддред рдпрд╣ рдбрд┐рдЬрд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рдХрд╛рдлреА рд▓рдЪреАрд▓рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЕрдВрдд рдореЗрдВ рдЗрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рдХрдард┐рди рд╣реЛ рдЧрдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдРрдк рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдЖрдИрдЖрдИрдПрд╕ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддрд╛ рд╣реВрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдпрд╣ рд╕реНрдерд╛рдиреАрдп рдЖрдИрдЖрдИрдПрд╕ (рдлрд╝реЛрд▓реНрдбрд░ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рдкрд░ рдЪрд▓рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ web.config рдореЗрдВ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдлрд┐рд░ рдореБрдЭреЗ рдЗрд╕реЗ рдЙрддреНрдкрд╛рджрди рдпрд╛ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рджреМрд░рд╛рди рдЬреЛ рдХреБрдЫ рднреА рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрд╣реБрдд рдЖрдо рдХрд╛рдоред рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдпрд╣ рдЕрд╕рдВрднрд╡ рд╣реИ, рд╣реИ рдирд╛? рдореБрдЭреЗ рджреВрд░рд╕реНрде рд╕рд░реНрд╡рд░ рдкрд░ web.config рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рд╕реЗрдЯрд┐рдВрдЧ рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рдХреЛ "рдбреЙрдЯрдиреЗрдЯ рдкрдмреНрд▓рд┐рд╢" (рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд╢рд┐рдд рд▓рдХреНрд╖реНрдп рдХреЗ рд▓рд┐рдП) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдорд░реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:

dotnet publish ... -environment=Production

dotnet publish web.%Enviroment%.config (Web.Production.config, Web.Development.config) рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЦреЛрдЬ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ web.config рдХреЗ рд╕рд╛рде рдорд░реНрдЬ (рд░реВрдкрд╛рдВрддрд░рд┐рдд) рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЕрдВрдд рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ ASPNETCORE_ENVIRONMENT рдХрд╛ рд╕рд╣реА рдорд╛рди рд╣реЛрдЧрд╛:

    <environmentVariables>
        <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="value passed to publish" />
    </environmentVariables>         

@ рдИрд╡рд┐рд▓-рд╢реНрд░реАрдХреЗ рдиреЗ https://github.com/nil4/dotnet-transform-xdt рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реА рд╣реИ, рдЬреЛ рд╕рдордп рдХреЗ рдХреЙрдиреНрдлрд┐рдЧ рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо рдХреЛ рдмрд┐рд▓реНрдб/рдкрдмреНрд▓рд┐рд╢ рдХрд░рддрд╛ рд╣реИред

рдПрдХ рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛, рд╢рд╛рдпрджред рдореБрдЭреЗ .\App_Data рдкрд░ рд▓рд┐рдЦреЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЙрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд░рдирд░ рдиреЗ .\App_Data рдХреЗ рдЕрдВрддрд░реНрдЧрдд рд╕рдм рдХреБрдЫ рдкрдврд╝рдиреЗ/рд▓рд┐рдЦрдиреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ .\ рдХреЗ рддрд╣рдд рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рдкрдврд╝ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рд╡реЗрдм рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдЗрд╕ рддрд░рд╣ рдПрдХ web.config рдХреЛ App_Data рдХреЗ рддрд╣рдд рд▓реЙрдЧ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд╕рд╛рде рддреИрдирд╛рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ:

я╗┐<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath=".\<assembly>.exe" stdoutLogEnabled="true" stdoutLogFile=".\App_Data\logs\stdout" />
  </system.webServer>
</configuration>

рдЖрдк рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВ рди рдХреЗрд╡рд▓ рдЙрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ web.release.config рдХреЗ рдмрдЬрд╛рдп web.config рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдП? рдЦреИрд░ processPath=".\<executable>.exe" рд╡рд╣ рдЬрдЧрд╣ рдирд╣реАрдВ рд╣реИ рдЬрд╣рд╛рдВ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рд░рд╣рддрд╛ рд╣реИ рдЬрдм рдореИрдВ рдЖрдИрдЖрдИрдПрд╕ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рддреЛ рдореБрдЭреЗ рдЕрдЪреНрдЫрд╛ ol '' HTTP рддреНрд░реБрдЯрд┐ 502.5 - рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡рд┐рдлрд▓рддрд╛ "рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИред

рд╣рдо рдЬреЗрдирдХрд┐рдиреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдиреЗрдЯрдлреНрд░реЗрдорд╡рд░реНрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдкреНрд░рддрд┐ рд╡рд╛рддрд╛рд╡рд░рдг vars рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд░рдиреЗ рдХрд╛ рд╣рдорд╛рд░рд╛ рдореМрдЬреВрджрд╛ рддрд░реАрдХрд╛ web.config рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реИред рддреЛ рд╣рдордиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдбреЙрдЯрдиреЗрдЯ рдореЗрдВ рднреА рдХрд░ рдкрд╛рдПрдВрдЧреЗред

рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ msbuild рдЕрднреА рднреА web.config рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП aspnet core csproj рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реИ!

рд╣рдо Asp.Net Core csproj рдореЗрдВ TransformXml рдкреНрд░рдХрд╛рд╢рди рдХрд╛рд░реНрдп рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:

<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v15.0\Web\Microsoft.Web.Publishing.Tasks.dll" />

рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реВрдкрд╛рдВрддрд░рдг рд▓рдХреНрд╖реНрдп рдЬреЛрдбрд╝реЗрдВ:

<Target Name="ConfigDev">
    <TransformXml Source="web.config" Transform="web.dev.config" Destination="web.config" /></Target>

рдХреБрдЫ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП ASPNETCORE_ENVIRONMENT рдЪрд░ рдореЗрдВ web.dev.config :

<system.webServer>
    <aspNetCore processPath="dotnet" arguments=".\Test.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" >
      <environmentVariables>
        <environmentVariable xdt:Locator="Match(name)" name="ASPNETCORE_ENVIRONMENT" value="dev" xdt:Transform="SetAttributes" />
      </environmentVariables>
    </aspNetCore>
</system.webServer>

рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ msbuild рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ web.config рдХреЛ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ:

msbuild Test.csproj /t:ConfigDev

"рдореБрдЭреЗ рдпрд╣ рдХрд╣рдХрд░ рдЙрдкрд╕рд░реНрдЧ рдХрд░рдиреЗ рджреЗрдВ рдХрд┐ рдореИрдВ web.config рдХрд╛ рдкреНрд░рд╢рдВрд╕рдХ рдирд╣реАрдВ рд╣реВрдВ рд▓реЗрдХрд┐рди IIS рдореЗрдВ AspNetCore рдРрдкреНрд╕ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрднрд╡ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЦрд░рд╛рдм рд╣реИред"

рдореИрдВ рдЗрд╕ рдзрд╛рдЧреЗ рд╕реЗ рдЕрдзрд┐рдХ рд╕рд╣рдордд рдирд╣реАрдВ рд╣реЛ рд╕рдХрд╛ред

рдирд┐рдпрдорд┐рдд ASP.Net рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░рд┐рд╡рд░реНрддрди рдХреА рд╕рд╛рджрдЧреА рдХреЗ рдмрд╛рдж, рдорд╢реАрди-рд╡реНрдпрд╛рдкреА ASPNETCORE_ENVIRONMENT рдЪрд░ рдкрд░ рдпрд╣ рдкреВрд░реА рдирд┐рд░реНрднрд░рддрд╛ рдмрджрдмреВ

рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдХреЗ рдЕрдкрдиреЗ рдЙрджрд╛рд╣рд░рдг рднреА рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдХреЗрд╡рд▓ рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдПрдХ _appsettings.Production.json_ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ...

            .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);

...рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЪреБрдиреЗ рдЧрдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ NAME рдкрд░ рдХреЛрдИ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЬрдм рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдкреНрд░реЛрдбрдХреНрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЪреБрдирд╛ рд╣реИ, рддрдм рднреА рдпрд╣ appsettings.Develop.json рдХреЛ рдЦреЛрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛ред рдФрд░ рдирд╣реАрдВ, рдореИрдВ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдХрд┐ рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВ рдХрд┐рд╕реА рднрд┐рдиреНрди рдкрд░рд┐рд╡реЗрд╢ рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ рд╕реНрд╡рдпрдВ ASPNETCORE_ENVIRONMENT рдЪрд░ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рд╡рд╣ рд╕рд┐рд░реНрдл рдкрд░реЗрд╢рд╛рдиреА рдкреВрдЫ рд░рд╣рд╛ рд╣реИред

рдореБрдЭреЗ рдЕрднреА рддрдХ _appsettings.XXXX.json_ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рд░рд▓, рдХрд╛рд░реНрдпрд╢реАрд▓ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрдирд╛ рд╣реИред
рдореИрдВ рдЗрд╕ рд╕рд╛рдорд╛рди рдХреЗ рдЕрдВрдд рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред (рдЖрд╣...)

рд╣рд╛рдБ, рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдареАрдХ рдХрд░реЗрдВ !!

рдореИрдВрдиреЗ рдЕрднреА рдЕрдкрдиреА рдкрд╣рд▓реА рдкреНрд░реЛрдбрдХреНрд╢рди рдбреЙрдЯрдиреЗрдЯ рдХреЛрд░ рд╕рд╛рдЗрдЯ рдХреЛ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдЕрдм рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХ рд╣реА рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдирд╣реАрдВ рд░рдЦ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореЗрд░реЗ рдРрдк рдХреЛ рдЙрд╕реА рдмреЙрдХреНрд╕ рдкрд░ рдХреИрд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рдмрд┐рдирд╛ рдЗрд╕реЗ рдЙрдард╛рдП рдЙрддреНрдкрд╛рджрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЕрднреА рдХреЗ рд▓рд┐рдП @DaleMckeown рд╕рдорд╛рдзрд╛рди рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрдЬрд╛рдп рд╕рдорд╛рдзрд╛рди рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдорд╣рд╛рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░реЛрдВ рдХрд╛ 1-1 рдЕрдиреБрдкрд╛рдд рд╣реИ, рдФрд░ рдЙрджреНрдпрдо рдХреЗ рдмрд╛рд╣рд░ рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдЕрдХреНрд╕рд░ рд╣реЛрддрд╛ рд╣реИред

@willapp рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ - рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рд╕рд░реНрд╡рд░ рдкрд░ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдРрдк рдХреЗ рдХрдИ рд╕рдВрд╕реНрдХрд░рдг рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред

рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмрд╕ 'ActiveEnvironment' рд╕реЗрдЯрд┐рдВрдЧ рдмрджрд▓рдирд╛ рдпрд╛рдж рд░рдЦреЗрдВ рдФрд░ рдЖрдкрдХреЛ рдареАрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рдареАрдХ рдЙрд╕реА рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ dkent600 рдиреЗ рдХрд┐рдпрд╛ рд╣реИ:

<environmentVariables>
      <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Production" />
</environmentVariables>

рдЙрддреНрдкрд╛рджрди рд╕рд░реНрд╡рд░ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдПрдкреНрд▓рд┐рдХреЗрд╢рди "appsettings.Development.json" рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд░рд╣рддрд╛ рд╣реИ, рдЬреЛ рдЕрдВрддрддрдГ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреЗ рд╕рдордп xml рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд╛рднреЛрдВ рдХреЛ рд╣рд░рд╛ рджреЗрддрд╛ рд╣реИред

рдореИрдВ DaleMckeown рджреНрд╡рд╛рд░рд╛ рд╕реБрдЭрд╛рдП рдЧрдП рд╕рдорд╛рдзрд╛рди рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ред

ASPNETCORE_ENVIRONMENT рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдЙрдЪрд┐рдд рддрд░реАрдХрд╛ web.config рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ

рдЬрд╝рд░реВрд░реА рдирд╣реАрдВред рдпрджрд┐ рдЖрдкрдХреЛ рдПрдХ рд╣реА рдорд╢реАрди рдкрд░ рдПрдХ рд╣реА рд╕рд╛рдЗрдЯ рдХреЗ рдХрдИ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣рд╛рдВ рдПрдХ рдмрд╣реБрдд рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ

  • рдорд╛рдИрдХреЛрд░рд╕рд╛рдЗрдЯ

    • рдмрд┐рди

    • рд▓реЙрдЧ

  • env.рдЬреЛ рдХреБрдЫ рднреА

рдЕрдкрдиреЗ рдЖрдИрдЖрдИрдПрд╕ рдРрдк рдХреЛ рдмрд┐рди рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ

.UseEnvironment(ReadEnvExtensionFromParentFolder())

рдмрд╕, рдЗрддрдирд╛ рд╣реАред рдЖрдкрдХреЗ рдкрд╛рд╕ рдЬрд┐рддрдиреА рдЪрд╛рд╣реЗрдВ рдЙрддрдиреА рд╕рд╛рдЗрдЯреЗрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЪрд┐рдВрддрд╛ рдХрд┐рдП рдмрд┐рдирд╛ рдмрд┐рди рдореЗрдВ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ env рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ рдкрд░рд┐рд╡реЗрд╢ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЬрдм рднреАред

рдореИрдВ рдЗрд╕реЗ рдЕрдкрд╡реЛрдЯ рдХрд░рддрд╛ рд╣реВрдВред рдореЗрд░реЗ рдкрд╛рд╕ рдЙрддреНрдкрд╛рджрди рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП URL рдкреБрдирд░реНрд▓реЗрдЦрди рд╣реИрдВ рдЬреЛ рдкрд░реАрдХреНрд╖рдг рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рд╕рд╣реА web.config рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ, рдореБрдЭреЗ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХреЙрдкреА рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдХреНрдпрд╛ рдЗрд╕ рдкрд░ рдХреЛрдИ рдкреНрд░рдЧрддрд┐ рд╣реБрдИ рд╣реИ? рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ 13 рдорд╣реАрдиреЗ рд╣реЛ рдЪреБрдХреЗ рд╣реИрдВ, 2.1.0 рдЕрднреА рдпрд╣рд╛рдВ рд╣реИ, рдФрд░ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдЖрдИрдЖрдИрдПрд╕ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЪреАрдЬреЗрдВ рдЕрднреА рднреА рдмрд╣реБрдд рдЦрд░рд╛рдм рд╣реИрдВред рдпрджрд┐ рдЖрдк Azure рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЪреАрдЬреЗрдВ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд╣реЛрд╕реНрдЯ рдХреА рдЬрд╛ рд░рд╣реА рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рдПрдХ рдмрдбрд╝реЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдЖрдИрдЖрдИрдПрд╕ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рд╡рд╛рдВрдЫрд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг рд╕реЗрдЯ рдХрд░рдирд╛ рдлрд╛рдпрджреЗрдордВрдж рд╣реЛрдЧрд╛ (рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ @ рдИрд╡рд┐рд▓-рд╢реНрд░реАрдХреЗ), рдФрд░ рдХрд┐рд╕реА рднреА .pubxml рдкреНрд░рдХрд╛рд╢рди рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХреЗ рднреАрддрд░ рднреАред рдЬреИрд╕рд╛ рдХрд┐ @davidfowl рдиреЗ рдХрд╣рд╛, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ web.config рдФрд░ IIS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрднреА рднреА рд╕реНрдерд╛рдкрд┐рдд рдЖрдзрд╛рд░ рдХреЗ рдПрдХ рдмрдбрд╝реЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИред

рдлрд┐рд▓рд╣рд╛рд▓ рдореЗрд░реЗ рдкрд╛рд╕ Microsoft.DotNet.Xdt.Tools рдФрд░ web.config рдЕрдиреБрд╡рд╛рдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдПрдХ рдмрд╣реБрдд рд╣реА рднрдВрдЧреБрд░ рд╕рдорд╛рдзрд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐ рд╡рд╛рддрд╛рд╡рд░рдг рдПрдХ рдмрд┐рд▓реНрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ v2.1.0 рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рдЯреВрдЯ рдЧрдпрд╛ рд╣реИред

рдпрд╣ рдЬрд╛рдирдХрд░ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХреЛрдИ рдпреЛрдЬрдирд╛ рд╣реИ рдФрд░ рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рд╡реЗ рдХреНрдпрд╛ рд╣реИрдВ? рдпрджрд┐ рдХреЛрдИ рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╛ рд╡реЗ рдПрдХ рд▓рдВрдмрд╛ рд░рд╛рд╕реНрддрд╛ рддрдп рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рднрдВрдЧреБрд░/рдЕрд░реНрдз-рдореИрдиреБрдЕрд▓ рддрд░реАрдХреЛрдВ рд╕реЗ рдмреЗрд╣рддрд░ рдЕрдВрддрд░рд┐рдо рд╕рдорд╛рдзрд╛рди рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдирд┐рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реИрдВ? рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХреНрдпреВрдП рдФрд░ рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡реАрдПрд╕ рдореЗрдВ рд╕рд┐рд░реНрдл рдПрдХ рдмрдЯрди рджрдмрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдЬрд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рд╕рд╣реА рдХрд╛рдо рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдФрд░ рд╕рд┐рд░ рдХреЗ рдЬреНрдЮрд╛рди рдФрд░ рдореИрдиреБрдЕрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдорд╛рд░реА рдХреЛрдИ рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдЯреВрд▓ https://github.com/nil4/xdt-samples/ by @nil4 рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИред

@svallis рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ?

рдХреНрдпрд╛ рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд▓реЛрдЧ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

@davidfowl рд╣рд╛рдБ, рдореЗрд░рд╛ рд╡рд░реНрддрдорд╛рди рд╕рдорд╛рдзрд╛рди рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЧрдВрддрд╡реНрдпреЛрдВ рд╡рд╛рд▓реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐ рд╡рд╛рддрд╛рд╡рд░рдг рдПрдХ рдмрд┐рд▓реНрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред csproj рд╕реЗрдЯрдЕрдк рдореЗрдВ рдХреБрдЫ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд┐рд▓реНрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдореЗрд░реЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрдо рддреМрд░ рдкрд░ рдЖрдкрдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд╕рд╛рде 1 рд╕реЗ 1 рд╕рдВрдмрдВрдз рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

  • рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛рдПрдБ: рдбреАрдмрдЧ = рдкрд░реНрдпрд╛рд╡рд░рдг: рд╡рд┐рдХрд╛рд╕
  • рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛рдПрдБ: рд╕реНрдЯреЗрдЬрд┐рдВрдЧ = рдкрд░реНрдпрд╛рд╡рд░рдг: рд╕реНрдЯреЗрдЬрд┐рдВрдЧ
  • рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛рдПрдБ: рд░рд┐рд▓реАрдЬрд╝ = рдкрд░реНрдпрд╛рд╡рд░рдг: рдЙрддреНрдкрд╛рджрди

рдмрд╛рдж рдХреЗ рджреЛ рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рдкрд╛рд╕ рд╕рдВрдмрдВрдзрд┐рдд web.{Build configuration}.config рдФрд░ appsettings.{Environment}.json , рдФрд░ web.{Build configuration}.config рдХрд╛ рд╢рд╛рдмреНрджрд┐рдХ рдЕрд░реНрде рдХреЗрд╡рд▓ рдПрдХ XDT рд╣реИ рдЬреЛ web.config рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИ рдЙрдкрдпреБрдХреНрдд ASPNETCORE_ENVIRONMENT рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ред рддреЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реБрдП, web.Release.config рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <system.webServer>
    <aspNetCore>
      <environmentVariables>
        <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Production" xdt:Transform="SetAttributes" xdt:Locator="Match(name)" />
      </environmentVariables>
    </aspNetCore>
  </system.webServer>
</configuration>

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЪрд▓ рд░рд╣рд╛ рд╣реИ dotnet publish -c Staging рдпрд╛ рдЬреЛ рдХреБрдЫ рднреА рд╕рд╣реА рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ web.config рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ -iisenvironment рдкрд░ dotnet publish -iisenvironment рд╕реНрд╡рд┐рдЪ рд╣реЛрддрд╛ рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдпрд╣ рдХрд░рддрд╛, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд╡реАрдПрд╕ рдкреНрд░рдХрд╛рд╢рди рдореЗрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЯреЗрдХреНрд╕реНрдЯ рдмреЙрдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдЬрд╛рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдпрд╣ рдмрд┐рд▓реНрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди, рдПрдХреНрд╕рдбреАрдЯреА рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╣рдЯрд╛ рджреЗрдЧрд╛, рдЖрджрд┐ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдЖрдИрдЖрдИрдПрд╕ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗред

рд╡реАрдПрд╕ рдХреЗ рднреАрддрд░ рд╕реЗ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд▓рдЧрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ред рд╣рдо рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╡реАрдПрд╕ рдХреЗ рднреАрддрд░ рд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реИрдВ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЬрдм рдпрд╣ v2.0.0 рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рддрдм рднреА рд╣рдореЗрдВ рдкреНрд░рдХрд╛рд╢рди рд╕реЗ рдкрд╣рд▓реЗ рд╕рд╣реА рдмрд┐рд▓реНрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЪреБрдирдирд╛ рдкрдбрд╝рддрд╛ рдерд╛ред

@davidfowl рдореЗрд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдореИрдВ рд╡реЗрдм рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдореИрдВ рджреВрд╕рд░рд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдкреНрд░рдХрд╛рд╢рди рдкрд░ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдЖрджрд░реНрд╢ рд╣реЛрдЧрд╛ред рдореИрдВ @svallis рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рднреА рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╡реАрдПрд╕ рдЖрдИрдбреАрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ рди рдХрд┐ рдХрдорд╛рдВрдб рд▓рд╛рдЗрдиред

@willapp рдЬрд┐рд╕ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдЙрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ рдЬрд┐рдирдХреЗ рд╕рд╛рде рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рд╡реАрдПрд╕ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреИрджрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ (https://github.com/aspnet/Home/issues/3190) . рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдЕрдЧрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдпрд╣ csproj рдореЗрдВ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рднреА рд╕реЗрдЯрдЕрдк рд╣реИ, рдЬрд┐рд╕реЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдФрд░ рд╡реАрдПрд╕ рджреЛрдиреЛрдВ рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЕрдВрдд рдореЗрдВ @davidfowl рджреНрд╡рд╛рд░рд╛ рдКрдкрд░ рд╕реБрдЭрд╛рдП рдЧрдП рдЯреВрд▓ рдХреЛ рдЖрдЬрд╝рдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП

"рдкреНрд░реЛрдЬреЗрдХреНрдЯ-рд▓реЗрд╡рд▓ рдЯреВрд▓" рд╕реЗрдХреНрд╢рди рдХреЗ рддрд╣рдд https://github.com/nil4/dotnet-transform-xdt рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ (рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЕрднреА 2.1.0 рдкрд░ рдирд╣реАрдВ рд╣реВрдВ)ред рдореБрдЭреЗ рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ Web.config рдЦреБрдж рдмрдирд╛рдирд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдирд╣реАрдВ рдерд╛ (рдмрд╕ рдЗрд╕реЗ рдПрдХ рд╡реАрдПрд╕ рд╕реЗ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрдм рдЖрдк рддреИрдирд╛рдд рдХрд░рддреЗ рд╣реИрдВ), рдлрд┐рд░ рдПрдХ Web.Debug.config рдмрдирд╛рдпрд╛ рдЬрд┐рд╕рдореЗрдВ ASPNETCORE_ENVIRONMENT рдХреЛ рд╡рд┐рдХрд╛рд╕ рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рд╣реЗ рдкреНрд░рддрд┐рд╖реНрдард╛! рдпрд╣ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рд╛рдЗрдЯ рдЕрдм рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░рд╛рд░рдВрдн рд╣реЛрддреА рд╣реИред

рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдмрдирд╛ рджрд┐рдпрд╛ рдЬрд╛рдП, рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

@davidfowl рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЧрд┐рдд рд▓рд┐рдВрдХ рдХреЛ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВ рд╡реАрдПрд╕ рдЬреАрдпреВрдЖрдИ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореИрдВ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдХрд┐ рдореЗрд░реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓реА рдЯреВрд▓реНрд╕ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛред рдпрджрд┐ рд░реВрдкрд╛рдВрддрд░рдг рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рддреЛ web.config рдореЗрдВ ASPNETCORE_ENVIRONMENT рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХрд┐рддрдиреЗ рдЕрдкрд╡реЛрдЯ рд╣реБрдП рд╣реИрдВ, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдмреИрдХрд▓реЙрдЧ рдореЗрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

@ orobert91 VS рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓реНрд╕ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рд▓рд┐рдкрдЯрд╛ рдПрдХ GUI рд╣реИред рдореИрдВ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ https://github.com/nil4/xdt-samples/ рд╡реАрдПрд╕ рдХреЗ рднреАрддрд░ рд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛрдиреЗ рдХреЗ рджреМрд░рд╛рди web.config рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдФрд░ рдЖрдкрдХреЗ рдЖрдИрдбреАрдИ рджреЛрдиреЛрдВ рдореЗрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред

@svallis рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЛ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ

  <Target Name="CopyFiles" AfterTargets="Publish">  
      <Copy SourceFiles="web.$(Configuration).config" DestinationFiles="web.config" />  
  </Target>   

рдПрдХ рдПрдордПрд╕рдмрд┐рд▓реНрдб рд╕рдВрдкрддреНрддрд┐ рд╣реИ рдЬреЛ рдкрд░реНрдпрд╛рд╡рд░рдг рдирд╛рдо рдХреЗ рд▓рд┐рдП рд╕рдореНрдорд╛рди рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреА рд╣реИ -

$(рдкрд░реНрдпрд╛рд╡рд░рдгрдирд╛рдо)

(https://github.com/aspnet/websdk/blob/d7d73e75918ec3168bd3e5d519d0decc04675faf/src/Publish/Microsoft.NET.Sdk.Publish.Targets/netstandard1.0/TransformTargets/Microsoft.NET.Sdk.Publish.TransformFiles.targets. )

рдЕрднреА, рдЬрдм рдпрд╣ рдЧреБрдг рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдХреЗрд╡рд▓ appsettings.$(EnvironmentName).json рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрдиреЗрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ (рдпрджрд┐ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред

рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реБрдП, рдЬрдм рдпрд╣ рдЧреБрдг рдкреНрд░рдХрд╛рд╢рди рдХреЗ рджреМрд░рд╛рди рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдкреНрд░рдХрд╛рд╢рд┐рдд web.config рдХреЛ рднреА рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рднреА рд╣реЛ:

<environmentVariables>
      <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="$(EnvironmentName)" />
</environmentVariables>

рдХреНрдпрд╛ рдпрд╣ рдпрд╣рд╛рдВ рд╡рд░реНрдгрд┐рдд рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдЧрд╛?

рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд╣рд░ рдХреЗ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдо рдореБрдЦреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП web.config рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо ( рджреЗрдЦреЗрдВрдЧреЗ ред

рдореИрдВ рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рд╣реВрдВ рдЬреЛ рдореБрдЭреЗ рдЖрд╡рд╢реНрдпрдХ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ - рдореИрдВ рдЗрд╕реЗ рдпрд╣рд╛рдВ рдкреЛрд╕реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЕрдЧрд░ рдпрд╣ рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ рд╣реЛред

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореБрдЭреЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЕрдкрдирд╛ рд╡рд┐рдХрд╛рд╕ рдкрд░реНрдпрд╛рд╡рд░рдг рдФрд░ рд░рд┐рдореЛрдЯ рд╕рд░реНрд╡рд░ (рдЙрд╕реА рд╕рд░реНрд╡рд░) рдкрд░ рдореЗрд░реЗ рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдФрд░ рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдг рджреЛрдиреЛрдВ рдорд┐рд▓ рдЧрдП рд╣реИрдВред рдореИрдВ IApplicationBuilder рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдпреВрдЖрд░рдПрд▓ рдЦреАрдВрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ рдФрд░ EnvironmentName рдорд╛рди рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП switch рдХрдерди рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред

рдпрд╣ рдкреЗрд╢ рдХрд┐рдП рдЧрдП рдХреБрдЫ рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдХрдо "рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб-рдИрд╢" рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡рд░реАрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЖрддрд╛ рд╣реИред

Startup.cs :

        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            env.DetectAndSet(app);

            ... other config method stuff here ...
        }

рдЙрдкрд░реЛрдХреНрдд рд╡рд┐рдзрд┐ рдПрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ IApplicationBuilder рднреАрддрд░ рдЧреБрдг рд╕рдВрдЧреНрд░рд╣ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд╕рд╛рде рд░рдЦрд╛ рд╣реИред рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд┐рдзрд┐ (рдФрд░ рд╡рд░реНрдЧ) рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http.Features;
using Microsoft.AspNetCore.Hosting.Server.Features;
using System.Linq;

namespace MyRootNamespace.Common.Extensions
{
    public static class IHostingEnvironmentExtensions
    {
        /// <summary>
        /// Detects the current hosting url and sets the <see cref="IHostingEnvironment.EnvironmentName"/> accordingly.
        /// </summary>
        /// <param name="env">The <see cref="IHostingEnvironment"/> to set.</param>
        /// <param name="app">The <see cref="IApplicationBuilder"/> used to retrieve the current app url.</param>
        public static void DetectAndSet(this IHostingEnvironment env, IApplicationBuilder app)
        {
            var _appUrl = string.Empty;

            try
            {
                _appUrl = ((FeatureCollection)app.Properties["server.Features"]).Get<IServerAddressesFeature>()?.Addresses?.FirstOrDefault();
            }
            catch { }

            switch (_appUrl)
            {
                case "https://www.myurl.com":
                case "http://www.myurl.com":
                    env.EnvironmentName = EnvironmentName.Production;
                    break;
                case "https://staging.myurl.com":
                case "http://staging.myurl.com":
                    env.EnvironmentName = EnvironmentName.Staging;
                    break;
                default:
                    env.EnvironmentName = EnvironmentName.Development;
                    break;
            }
        }
    }
}

рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ web.config рдкрд░рд┐рд╡рд░реНрддрди рд╡рд╛рдВрдЫрдиреАрдп рдирд╣реАрдВ рд╣реИ)ред

рдЪреАрдпрд░реНрд╕!

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдПрдХ рдЪрд░реНрдЪрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рд╕рдордп рдЗрд╕рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреЛрдИ рд╡рд┐рд╢реЗрд╖рддрд╛/рд╕реБрдзрд╛рд░ рдХреА рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рд╣реИред рдЕрдЧрд░ рд▓реЛрдЧреЛрдВ рдХреЗ рдкрд╛рд╕ рдЕрднреА рднреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдЙрдирдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛рдПрдВ рджрд░реНрдЬ рдХрд░реЗрдВ рдФрд░ рд╣рдо рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВрдЧреЗред

рдореИрдВ рдЗрд╕ рдзрд╛рдЧреЗ рдкрд░ рджреЗрдЦреЗ рдЧрдП рдХрд╛рдордХрд╛рдЬ рд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрддреБрд╖реНрдЯ рдирд╣реАрдВ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдХ рдЕрд▓рдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд▓рд┐рдпрд╛ред рдореИрдВ рдЗрд╕ рдзрд╛рдЧреЗ рдкрд░ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдкрд░ рдареЛрдХрд░ рдЦрд╛рдИ: https://stackoverflow.com/questions/31049152/publish-to-iis-setting-environment-variable/36836533#36836533ред рдпрд╣ рд╕рд░реНрд╡рд░ рдкрд░ ApplicationHost.config рдХреЛ ASPNETCORE_ENVIRONMENT рд╡реИрд░рд┐рдПрдмрд▓ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд╕реНрдерд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддрд╛ рд╣реИред

рд╣рдорд╛рд░реЗ рдЖрдВрддрд░рд┐рдХ IIS рд╕рд░реНрд╡рд░ рд╣рдорд╛рд░реА рд╕рдВрдЪрд╛рд▓рди рдЯреАрдо рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд╕рдВрдЧрдарди рдХреЗ рдбреЗрд╡рд▓рдкрд░ рд╡реИрд╕реЗ рднреА рдЙрди рд╕рд╛рдЗрдЯреЛрдВ рдХреЛ рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВред рд╕рдВрдЪрд╛рд▓рди рдЯреАрдо рдЗрди рд╕рд╛рдЗрдЯреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд╡рд░рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред рдореИрдВрдиреЗ рдЙрдирд╕реЗ рдмрд╕ рдЙрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рддрд╛рдХрд┐ рдпрд╣ рд╕рд╛рдЗрдЯ рдХреЗ рдкреНрд░рд╛рд╡рдзрд╛рди рдХреЗ рд╕рдордп ApplicationHost.config рдореЗрдВ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рднреА рдХрд░ рд╕рдХреЗред рдЕрдм рдореИрдВ рдмрд╕ рд╡рд╣рд╛рдВ рддреИрдирд╛рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ .NET рдХреЛрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреА рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рд╣рдорд╛рд░реА рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд┐рдпрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╕рдЪреНрдЪреЗ DevOps рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЖрдк рд╢рд╛рдпрдж рд╡реИрд╕реЗ рднреА Azure рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реЛрдВрдЧреЗ, рдЬрд┐рд╕рд╕реЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдирд╡реАрдирддрдо Sdk рдХреЗ рд╕рд╛рде, рдЖрдк рдмрд╕ msbuild рд╕рдВрдкрддреНрддрд┐ $(EnvironmentName) рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЯреВрд▓рд┐рдВрдЧ ASPNETCORE_ENVIRONMENT рдХреЛ рдЗрд╕ рдорд╛рди рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦреЗрдЧрд╛ред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: рдпрджрд┐ EnvironmentName рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдкрд░ рд╕реЗрдЯ рд╣реИ, рддреЛ web.config рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╣реЛрдЧреА:

      <aspNetCore processPath="dotnet" arguments=".\WebApplication242.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout">
        <environmentVariables>
          <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Staging" />
        </environmentVariables>
      </aspNetCore>

рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдкреАрдЖрд░:
https://github.com/aspnet/websdk/pull/377

@vijayrkn рдПрдХ рдЖрд╢рд╛рдЬрдирдХ рд╢реБрд░реБрдЖрдд рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред рдХреНрдпрд╛ рдпрд╣ рдЕрдВрддрддрдГ рд╡реАрдПрд╕ рд╡реЗрдм рдбрд┐рдкреНрд▓реЙрдп/рдкреНрд░реЛрдлрд╛рдЗрд▓ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдЖрджрд┐ рдореЗрдВ рд╕рдорд░реНрдерди рдХрд░реЗрдЧрд╛?

рдЗрд╕ рдкрд░реНрдпрд╛рд╡рд░рдг рдирд╛рдо рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднреА рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡реАрдПрд╕ рдореЗрдВ рдпреВрдЖрдИ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЗрд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдкрдмрдХреНрд╕рдПрдордПрд▓ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╡реАрдПрд╕ рдФрд░ рдХрдорд╛рдВрдбрд▓рд╛рдЗрди рд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рджреЛрдиреЛрдВ рдЗрд╕рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░реЗрдВрдЧреЗред

рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП UI рд╕рдкреЛрд░реНрдЯ рднреА рдЬреЛрдбрд╝рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред

@vijayrkn web.config рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдкреНрд░рдХрд╛рд╢рди рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реИ - рдХреНрдпрд╛ рдпрд╣ рд╕рд╣реА рд╣реИ?

@vijayrkn рд╣рд╛рдБ, pubxml рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рдорд░реНрдерди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╡рд╣ рдХреНрд╖рдг рд╣реЛрдЧрд╛ рдЬрд╣рд╛рдВ рдпрд╣ рд╣рдорд╛рд░реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред рдЙрд╕ рд╕рдордп рд╣рдо рд╕рднреА рдПрдХреНрд╕рдПрдордПрд▓ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ pubxml рдореЗрдВ рдЙрдкрдпреБрдХреНрдд рдкрд░реНрдпрд╛рд╡рд░рдг рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпреВрдЖрдИ рд╕рдорд░реНрдерди рдмрд╛рдж рдХреА рддрд╛рд░реАрдЦ рдореЗрдВ рдЖ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд┐рд░реНрдл рдХреЗрдХ рдкрд░ рдЖрдЗрд╕рд┐рдВрдЧ рд╣реЛрдЧрд╛ред

@challamzinniagroup - рдирд╣реАрдВ, рдЖрдкрдХреЛ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП web.config рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдЖрдкрдХреЛ рдХреЗрд╡рд▓ pubxml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЛрдбрд╝рдирд╛ рд╣реИ рдФрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЯреВрд▓рд┐рдВрдЧ рдмрд╛рдХреА рдХрд╛ рдзреНрдпрд╛рди рд░рдЦреЗрдЧрд╛ред

<EnvironmentName>YourCustomEnvironment</EnvironmentName>

@challamzinniagroup , @vijayrkn

рдЬрдм рддрдХ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреБрдЫ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдирд╣реАрдВ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ web.config рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рдмреАрдЪ рд░реВрдкрд╛рдВрддрд░рд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛, web.config рдХреЛ рдЕрдХреЗрд▓рд╛ рдЫреЛрдбрд╝ рджреЗрдВред рдХреЛрдб рдХреА 2 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде, рдЖрдк рдХрд╣реАрдВ рд╕реЗ рднреА рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдЖрдкрдХреЛ рдкрдмреНрд▓рд┐рд╢ рдкреНрд░реЛрдлрд╛рдЗрд▓, рдпрд╛ рдкрдмреНрд▓рд┐рд╢ рдХреЛрдб рдореЗрдВ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдХреЗ рдмрджрд▓рд╛рд╡ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рдмрд╕ рдореИрдЪрд┐рдВрдЧ рдПрдкрд╕реЗрдЯрд┐рдВрдЧ рдХреА рд▓рд┐рд╕реНрдЯредXYZ.json

@ThisNoName

рдЖрдкрдХрд╛ рдорддрд▓рдм рд╣реИ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕, рд╕рд░реНрд╡рд┐рд╕ рдПрдВрдбрдкреЙрдЗрдВрдЯреНрд╕, рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕, рдпрд╛ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдЪреАрдЬреЗрдВ рдЬреЛ рджреЗрд╡-> рд╕реНрдЯреЗрдЬрд┐рдВрдЧ-> рдкреНрд░реЛрдбрдХреНрд╢рди рд╕реЗ рдмрджрд▓ рдЬрд╛рдПрдВрдЧреАред

рдпрджрд┐ рдЖрдк рдПрдХ рд╣реА рд╡рд╛рддрд╛рд╡рд░рдг (рдХреНрд▓рд╛рдЙрдб рдХреЗ рдмрд╛рд╣рд░ рдмрд╣реБрдд рд╕рд╛рдорд╛рдиреНрдп) рдкрд░ рдХрдИ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ web.config рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо рдХреЗ рд▓рдЪреАрд▓реЗрдкрди рдХреА рдмрд┐рд▓реНрдХреБрд▓ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдмрд╣реБрдд рд╣реА рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рд╣реИ рдХрд┐ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдиреЗ рдбреЙрдЯрдиреЗрдЯ рдХреЛрд░ рдХреЗ рд╕рд╛рде рдмреЙрдХреНрд╕ рдХреЗ рдмрд╛рд╣рд░ рдЗрд╕ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕рд┐рд░реНрдл рдпрд╣ рдорд╛рди рд▓рд┐рдпрд╛ рдХрд┐ рд╣рд░ рдХреЛрдИ Azure рдореЗрдВ рд╣реЛрд╕реНрдЯ рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдФрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рдмреАрдЪ 1-1 рд╕рдВрдмрдВрдз рдерд╛ред

рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрд▓рд╛рдЙрдб рдХреЗ рдмрд╛рд╣рд░ рдЪреВрд╕рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдРрдк рд╕реЗ рдЕрд▓рдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рддреИрдирд╛рддреА рдХреЛ рдкреВрд░реНрдг рд╡рд┐рд░рд╛рдо рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдирд╛ рдХрдард┐рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣рд╛рдВ рдмрдбрд╝рд╛ рдмрджрд▓рд╛рд╡ рдпрд╣ рд╣реИ рдХрд┐ рдЙрди рд░рд╣рд╕реНрдпреЛрдВ рдХреЛ рдХрднреА рднреА рд╕реНрд░реЛрдд рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдкрд░реНрдпрд╛рд╡рд░рдг рдкрд░ рд╣реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдЕрдЪреНрдЫреЗ рдЕрднреНрдпрд╛рд╕ рдХреЗ рд╕рд╛рдордиреЗ рдЙрдбрд╝ рдЬрд╛рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдкреНрд░рдХрд╛рд╢рди рд╕рдордп рдкрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд▓рдХреНрд╖реНрдп рдХреЛ рд╕рдордЭрддреЗ рд╣реИрдВ рдЬреЛ рд╣рдореЗрд╢рд╛ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ (рд╡рд┐рд╢реЗрд╖рдХрд░ рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдИ рд╡рд╛рддрд╛рд╡рд░рдг рд╣реЛрддреЗ рд╣реИрдВ)ред рдЬрдм рдЖрдк рдЙрди рдПрди рдкрд░рд┐рдирд┐рдпреЛрдЬрдиреЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧ рдмрджрд▓рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ?

рдЕрдм рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдИрдЖрдИрдПрд╕ рдХреЗ рд╕рд╛рде, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдРрдк рдкреВрд▓ рдЙрдиреНрд╣реЗрдВ рджреЗрдЦ рд╕рдХреЗред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдордиреЗ рдХрднреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖реНрдп рдорд╢реАрдиреЛрдВ рдкрд░ рдорд╢реАрди рд╡рд╛рдЗрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рдХрд┐рдпрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВрдиреЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдРрд╕рд╛ рдХрд░рддреЗ рджреЗрдЦрд╛ рд╣реИ)ред

@willapp рдЖрдк appsettings.json рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддреЗ?

@рд╡рд┐рд▓рдкреНрдк

M$ рдХрд╛ рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓реЛрдЧ web.config рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╕реЗ рдЪрд┐рдкрдХреЗ рд╣реБрдП рд╣реИрдВред

рдпрд╣рд╛рдВ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдЖрдк рдПрдХ рд╕рд╛рде рдХрдИ рд╕рд╛рдЗрдЯреЗрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рдЖрдИрдЖрдИрдПрд╕ рдмрд╛рдЗрдирд░реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдмрд╛рд╣рд░ рдХрд╣реАрдВ рднреА рдЕрдкрдирд╛ рдкрд░реНрдпрд╛рд╡рд░рдг рдореВрд▓реНрдп рдлреЗрдВрдХрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдФрд░ рдЗрд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕реЗ рдкрдврд╝реЗрдВ/рд╕реЗрдЯ рдХрд░реЗрдВ

  • рдЖрдИрдЖрдИрдПрд╕рд░реВрдЯ

    • рдорд╛рдИрд╕рд╛рдЗрдЯрджреЗрд╡

    • рдмрд┐рди



      • рдРрдкрд╕реЗрдЯрд┐рдВрдЧ.рдЬреЗрд╕рди


      • рдРрдкреНрд╕ рд╕реЗрдЯрд┐рдВрдЧреНрд╕.DEV.json


      • рдРрдкреНрд╕ рд╕реЗрдЯрд┐рдВрдЧреНрд╕.PROD.json


      • рд╡реЗрдм.рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди



    • рд▓реЙрдЧ

    • env.DEV

    • MySitePROD

    • рдмрд┐рди



      • рдРрдкрд╕реЗрдЯрд┐рдВрдЧ.рдЬреЗрд╕рди


      • рдРрдкреНрд╕ рд╕реЗрдЯрд┐рдВрдЧреНрд╕.DEV.json


      • рдРрдкреНрд╕ рд╕реЗрдЯрд┐рдВрдЧреНрд╕.PROD.json


      • рд╡реЗрдм.рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди



    • рд▓реЙрдЧ

    • env.PROD

@davidfowl

рдХреНрдпрд╛ рдЖрдк рд▓реЛрдЧреЛрдВ рдХреЛ рдмрддрд╛ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рд╣реИ рдХрд┐ ASP.NET рдХреЛрд░ IIS рдХреЗ рд╕рд╛рде рдареАрдХ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ? Microsoft .NET рдХреЛрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ?

рдХреБрдЫ рднреА рдХреЛрд░ рдХреЗ рд╕рд╛рде рдпрд╣рд╛рдВ рдкреНрд░рддрд┐рдорд╛рди рдмрджрд▓рд╛рд╡ рдмрд╣реБ-рдордВрдЪ рд╣реИред рдЖрдИрдЖрдИрдПрд╕ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рд╡рд┐рдВрдбреЛрдЬрд╝ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИ - рдФрд░ рдЗрд╕рд▓рд┐рдП рдХреБрдЫ рдмрдврд╝рддреЗ рджрд░реНрдж рдХреА рдЙрдореНрдореАрдж рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рддрд░рд╣ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рдЪреАрдЬреЗрдВ рдЖрдЧреЗ рдмрдврд╝рддреА рд╣реИрдВ, рдЗрд╕реЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд┐рдВрдбреЛрдЬрд╝ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрд░ рдореЗрдВ рдЬрд╛рдирдмреВрдЭрдХрд░ рдбрд┐рдЬрд╝рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдЙрдВрдЯрд░-рд╕рд╣рдЬ рдЬреНрдЮрд╛рди рдпреБрдХреНрдд рдЖрдИрдПрдордУ рд╣реЛрддрд╛ред

рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
рдпрд╣ рдПрдХ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХреЛрд░ рдХреЛ рдЖрдИрдЖрдИрдПрд╕ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯ-рдСрдл-рдж-рдмреЙрдХреНрд╕ рдмреЗрд╣рддрд░ рд╕рдорд░реНрдерди рдорд┐рд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЪрд░реНрдЪрд╛...

@davidfowl

рдФрд░ рдпрд╣ рдЙрджреНрдпрдо рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдФрд░ рдПрд╕рдПрдордИ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рд╣реИред рдореИрдВ рдПрдХ FTSE100 рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рд╣рд╛рдВ, рдХреЛрдб рд╕реЗ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдХрдИ рд╕рд╛рдЗрдЯреЛрдВ рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рднреА рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рдФрд░ рдПрдХ рдПрдХрд▓ рд╕рд░реНрд╡рд░ рд░рдЦрдирд╛ рдЖрд╕рд╛рди рдФрд░ рдЕрдзрд┐рдХ рд▓рд╛рдЧрдд рдкреНрд░рднрд╛рд╡реА рд╣реИ рдЬрд┐рд╕ рдкрд░ рдореИрдВ рдЕрдкрдиреА рд╕рднреА рд╕рд╛рдЗрдЯреЛрдВ рдХреЛ рд╣реЛрд╕реНрдЯ рдХрд░рддрд╛ рд╣реВрдВред рд╡реЗрдм рдкрд░рд┐рдирд┐рдпреЛрдЬрди + рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдбрд┐рд▓реАрд╡рд░реА рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдЬрдорд╛рдпрд╛ рд╣реБрдЖ рддрдВрддреНрд░ рд╣реИ, рдпрд╣ рдмрд╕ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдмреЗрд╣рддрд░ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдХреЛ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛, рдпрд╣ рдЬрд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ .net рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реЗ рдХреЛрд░ рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рддреЗ рд╕рдордп рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕ рд╕реВрддреНрд░ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХрд╛рдлреА рдЦреБрд╢ рд╣реВрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ рдорд╛рдирдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реБрдП рдЧреЗрдВрдж рдХреЛ рдереЛрдбрд╝рд╛ рдЧрд┐рд░рд╛ рджрд┐рдпрд╛ред

@рд╡рд┐рд▓рдкреНрдк

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рд╡рд░реНрддрди рд╕реНрд░реЛрдд рд╕реЗ рд╕рдВрдХрд▓рди рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдореБрдЭреЗ рдЦреБрд╢реА рд╣реИ рдХрд┐ рдПрдо $ рдиреЗ рдЗрд╕реЗ рдЧрд┐рд░рд╛ рджрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рдХрд▓реНрдк рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╣реИред

рдирдП рд╕реЗрдЯрдЕрдк рдХреЗ рд╕рд╛рде, рдЖрдк рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рд░рд┐рд▓реАрдЬ рдХреЙрдиреНрдлрд┐рдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдирд╛ рдХреЛрдб рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╕рднреА рдЪрд▓ рд░рд╣реЗ рдЙрджрд╛рд╣рд░рдг рдореВрд▓ рдХреА рд╕рдорд╛рди рдмрд╛рдЗрдирд░реА рдкреНрд░рддрд┐рдпрд╛рдВ рд╣реИрдВред рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЕрдЧрд▓реЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рдВрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП DEV=>TEST=>Staging=>PRODред

рдХреНрдпрд╛ рдЖрдк рд▓реЛрдЧреЛрдВ рдХреЛ рдмрддрд╛ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рд╣реИ рдХрд┐ ASP.NET рдХреЛрд░ IIS рдХреЗ рд╕рд╛рде рдареАрдХ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ? Microsoft .NET рдХреЛрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ?

рдореИрдВ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рд▓реЛрдЧ рддреБрд░рдВрдд рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдкреНрд░рддрд┐ рдорд╢реАрди рдХреЗ рдмрдЬрд╛рдп рдкреНрд░рддрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░реВрдк рд╕реЗ рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рд▓реЛрдЧ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреА рдкрд╣рдЪрд╛рди рдкреНрд░рддрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрдЬрд╛рдп рдорд╢реАрди рд╡рд╛рдЗрдб рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рд╕реЗ рднреНрд░рдо рдкреИрджрд╛ рд╣реБрдЖ рд╣реИред IIS 10 рдиреЗ рдкреНрд░рддрд┐ рдРрдк рдкреВрд▓ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ред ASP.NET рдХреЛрд░ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдкреНрд░рддрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рд╕рдорд░реНрдерди рд╣реИред

рдлрд┐рд░ рднреА рдпрд╣ рдХреНрд╖рдорддрд╛ рд░рд╣реА рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдБ рд╕реЛрдЪ рдореЗрдВ рдЬреНрдпрд╛рджрд╛рддрд░ рджрд╛рд░реНрд╢рдирд┐рдХ рдмрджрд▓рд╛рд╡ рдЖрдпрд╛ рд╣реИред рд╣рдо рдРрд╕рд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдЬрд┐рд╕рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рдордп рд░рд╣рд╕реНрдпреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛред

@challamzinniagroup рдЕрдЪреНрдЫрд╛ рд╕рд╛рд░рд╛рдВрд╢

рдпрд╣ рдПрдХ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХреЛрд░ рдХреЛ рдЖрдИрдЖрдИрдПрд╕ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯ-рдСрдл-рдж-рдмреЙрдХреНрд╕ рдмреЗрд╣рддрд░ рд╕рдорд░реНрдерди рдорд┐рд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЪрд░реНрдЪрд╛...

рд╕рд╣реАред рдкрд░рд┐рд╡реЗрд╢ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣ рдЕрднреА рднреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рд╡реЗрд╢ рдкрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рд╡рд╣рд╛рдВ рдХреИрд╕реЗ рдкрд╣реБрдВрдЪрд╛рддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдпрд╣ рддреИрдирд╛рддреА рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ?

рдЙрди рд╕рднреА рдиреЗ рдХрд╣рд╛, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рд╣рдо 2.2 рдореЗрдВ рдЯреВрд▓рд┐рдВрдЧ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВред

cc: @vijayrkn

@davidfowl

рдЬрдм рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ "рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░реВрдк рд╕реЗ рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рд▓реЛрдЧ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреА рдкрд╣рдЪрд╛рди рдкреНрд░рддрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрдЬрд╛рдп рдорд╢реАрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВ", рддреЛ рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдорддрд▓рдм рд╡рд┐рдВрдбреЛрдЬ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдПрд╕рдИрдЯреА рдореЗрдВ рд╣реИ?

рдХреНрдпреЛрдВрдХрд┐ .NET рдХреЛрд░ рд╕рдВрджрд░реНрдн рдХреЗ рдЕрдВрджрд░ "рдкрд░реНрдпрд╛рд╡рд░рдг" рдХреА рдореЗрд░реА рд╕рдордЭ рд╕рд┐рд░реНрдл рдПрдХ рдЪрд░ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рд╕рд┐рд╕реНрдЯрдо рдпрд╛ web.config рд╕реЗ ASPNETCORE_ENVIRONMENT рдкрдврд╝рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕реЗ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рд╕реНрд░реЛрдд рд╕реЗ рдХрд┐рд╕реА рднреА рд╕рдореНрдореЗрд▓рди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдЙрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдХреБрдЫ рдЧрд▓рдд рд╣реИ? рдХреНрдпреЛрдВрдХрд┐ рдЕрдЧрд░ Microsoft .NET рдЯреАрдо рдХреА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕реНрдерд┐рддрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рддреЛ рд╣рдореЗрдВ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдЖрдк рдЕрдВрдд рдореЗрдВ рд▓реЛрдЧреЛрдВ рдХреЛ рдЖрдИрдЖрдИрдПрд╕ рдХреЗ рддрд╣рдд .NET рдХреЛрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЙрди рдРрдкреНрд╕ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред

рдзрдиреНрдпрд╡рд╛рджред

@ThisNoName

рдЬрдм рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ "рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░реВрдк рд╕реЗ рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рд▓реЛрдЧ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреА рдкрд╣рдЪрд╛рди рдкреНрд░рддрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрдЬрд╛рдп рдорд╢реАрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВ", рддреЛ рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдорддрд▓рдм рд╡рд┐рдВрдбреЛрдЬ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдПрд╕рдИрдЯреА рдореЗрдВ рд╣реИ?

рдЬреА рд╣рд╛рдВ, рдЗрд╕ рд╕реВрддреНрд░ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рдРрд╕рд╛ рд╣реА рд╣реИред ( рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ)ред рдЬреИрд╕рд╛ рдХрд┐ рдбреЗрд╡рд┐рдб рдХрд╣рддреЗ рд╣реИрдВ, рдпреЗ рдкреНрд░рддрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдореЗрдВ рдбреЙрдЯрдиреЗрдЯ рдХреЛрд░ рдкрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рджрд╕реНрддрд╛рд╡реЗрдЬ рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдорд╢реАрди рд╕реНрддрд░ рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдк рдПрдХ рд╣реА рд╕рд░реНрд╡рд░ рдкрд░ рдХрдИ рдРрдк рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рддреИрдирд╛рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдПрдХ рд╣реА рдкрд░реНрдпрд╛рд╡рд░рдг рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЙрдард╛рдПрдВрдЧреЗ рддрд╛рдХрд┐ рдЖрдк рджреЗрд╡/рд╕реНрдЯреЗрдЬрд┐рдВрдЧ/рдкреНрд░реЛрдб рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рди рдХрд░ рд╕рдХреЗрдВред

рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ IIS10 рдЙрдиреНрд╣реЗрдВ рдкреНрд░рддрд┐ рдРрдк-рдкреВрд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ ... рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рд░реНрд╡рд░ 2016 рдЙрдкрд▓рдмреНрдз рд╣реИред рдореИрдВ 2012 рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред рдлрд┐рд░ рд╕реЗ, рдореЗрд░рд╛ рдореБрджреНрджрд╛ рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдЪреАрдЬреЛрдВ рдХреЛ рдмреЗрд╣рддрд░ рджрд┐рд╢рд╛ рдореЗрдВ рд▓реЗ рдЬрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдПрд╕рдкреА.рдиреЗрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧреЛрдВ рдиреЗ 'рд╡рд┐рд░рд╛рд╕рдд' рд╕рдорд░реНрдерди рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рд╣реИ, рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдЧрд▓рддреА рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред рд╣рд░ рддрд░рд╣ рд╕реЗ рдирдП рдкреИрдЯрд░реНрди рдкреЗрд╢ рдХрд░реЗрдВ рдФрд░ рд▓реЛрдЧреЛрдВ рдХреЛ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдЬрдм рддрдХ рдЖрдк рдЖрд╢реНрд╡рд╕реНрдд рди рд╣реЛрдВ рдХрд┐ рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддрдм рддрдХ рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рди рд╣рдЯрд╛рдПрдВред рдЕрдиреНрдпрдерд╛ рдЖрдк рдХреЗрд╡рд▓ рдЙрди рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╛рдзрд╛рдПрдВ рдбрд╛рд▓ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдбреЙрдЯрдиреЗрдЯ рдХреЛрд░ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдкрде рдХреЛ рдмрд╣реБрдд рджрд░реНрджрдирд╛рдХ рдкрд╛рддреЗ рд╣реИрдВред

@рд╡рд┐рд▓рдкреНрдк

рдпрд╣ рдХреЗрд╡рд▓ рдбрд┐рдлреЙрд▓реНрдЯ рдЖрдЙрдЯ рдСрдл рдж рдмреЙрдХреНрд╕ рд╕реЗрдЯрд┐рдВрдЧ рд╣реИред рдЖрдк рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЪрд╛рд╣реЗрдВ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рдкрдврд╝ рдФрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдореЗрд░реА рд╕рдордЭ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдХреЛрдИ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдХреЛрдИ рдЧрдВрднреАрд░ рджреЛрд╖ рдирд╣реАрдВ рдмрддрд╛рддрд╛?

   public class Program   {
        public static void Main(string[] args)   {
            CreateWebHostBuilder(args).Build().Run();
        }

        public static IWebHostBuilder CreateWebHostBuilder(string[] args)   {
               return WebHost.CreateDefaultBuilder(args)
                .UseEnvironment(ReadEnvFromWherever())
                .UseStartup<Startup>()
        }

        private string ReadEnvFromWherever() { 
              // Get and return whatever by your own convention
              return "DEV";
        }
    }

@ThisNoName

рдЧрдВрднреАрд░ рджреЛрд╖ рдпрд╣ рд╣реИ рдХрд┐, рдЖрдкрдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░, VSTS рд╕реЗ рд╡реЗрдм рдкреНрд░рдХрд╛рд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЖрдк "ReadEnvFromWhereever" рд╡рд┐рдзрд┐ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдорд╛рди рдХреИрд╕реЗ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (#if рд░рд┐рд▓реАрдЬ ...) рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдЧрдВрджрд╛ рд▓рдЧрддрд╛ рд╣реИред

"рдкреБрд░рд╛рдиреА рджреБрдирд┐рдпрд╛" (рдПрдПрд╕рдкреА.рдиреЗрдЯ рдкреВрд░реНрдг рдврд╛рдВрдЪреЗ) рдореЗрдВ рдЖрдк рдПрдХ рдкреНрд░рдХрд╛рд╢рд┐рдд рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЪрдпрди рдХрд░ рд░рд╣рд╛ рд╣реИред рдЙрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕рдиреЗ рдПрдХ рдХреЙрдиреНрдлрд┐рдЧ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд┐рд╕рдиреЗ рдЖрдкрдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА, рдЗрд╕ рдЖрдзрд╛рд░ рдкрд░ рдХрд┐ рдЖрдк рджреЗрд╡/рд╕реНрдЯреЗрдЬрд┐рдВрдЧ/рдкреНрд░реЛрдб рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░ рд░рд╣реЗ рдереЗ рдпрд╛ рдирд╣реАрдВред

рдореИрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдПрдХ рдЖрдзреБрдирд┐рдХ рд╕реАрдЖрдИ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реИ, рдЬрд╣рд╛рдВ рдЖрдк рдПрдХ рдПрдХрд▓ рдмрд┐рд▓реНрдб рдкреИрдХреЗрдЬ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдзрдХреНрдХрд╛ рджреЗрддреЗ рд╣реИрдВ - рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдк рддреИрдирд╛рддреА рдХреЗ рд╕рдордп рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реАрдПрд╕рдЯреАрдПрд╕ рд░рд┐рд▓реАрдЬ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреА рддрд░рд╣ рдХреБрдЫ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдпрд╛ рдЖрдк рдкреНрд░рд╛рдЗрдо рдЖрдкрдХрд╛ рд╕рд░реНрд╡рд░ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╕рд╣реА рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЗ рд╕рд╛рде рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрдк рдкреИрдХреЗрдЬ рдХреЛ рдмреЙрдХреНрд╕ рдкрд░ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдСрдЯреЛ-рдЬрд╛рджреБрдИ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдлрд┐рд░ рднреА, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдПрд╕рдПрдордИ рдФрд░ рд╡рди-рдореИрди-рдмреИрдВрдб рдЗрд╕ рдЬрдЧрд╣ рдкрд░ рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕реЗ рддреИрдирд╛рддреА рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рдЙрдирдХреЗ рдЗрдЪреНрдЫрд┐рдд рдкрд░рд┐рдгрд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред

рдмрд╕ рдпрд╣ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЖрдИрдЖрдИрдПрд╕ рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рд╕рд╛рдЭрд╛ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдЫреЛрдЯреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдФрд░ рдкрд░рдВрдкрд░рд╛рдЧрдд рд░реВрдк рд╕реЗ рдПрдПрд╕рдкреА.рдиреЗрдЯ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреА рдкреЗрд╢рдХрд╢ рдХреА рдЬрд╛рддреА рд╣реИред рдЙрдирдХреЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХрдВрдЯреНрд░реЛрд▓ рдкреИрдирд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рддрд┐ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рд╕реБрд╡рд┐рдзрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдХреЗрд╡рд▓ рдпрдерд╛рд░реНрдерд╡рд╛рджреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо рдФрд░ web.config ред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдм рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ, рдФрд░ рд▓рд╛рдЗрди рдХреЗ рдиреАрдЪреЗ рдереЛрдбрд╝рд╛ рдФрд░ рдиреАрдЪреЗ рд╡реАрдПрд╕ рд╕рдорд░реНрдерди рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдореМрдЬреВрджрд╛ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдЧрд╛ рдЬреЛ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкреНрд░рджрд╛рддрд╛ рдФрд░ рд▓реАрдЧреЗрд╕реА рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдпрд╛ рд╕реБрдзрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

@рд╡рд┐рд▓рдкреНрдк

рд░рд┐рд╡рд╛рдЬ рдХреЗ рд╕рдиреНрджрд░реНрдн рдореЗред рдпрджрд┐ рдЖрдк рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рдкреЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдореВрд▓ рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ env.DEV рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдЕрдкрдиреЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЖрдк рдХрд┐рд╕реА рднреА рд╕рдореНрдореЗрд▓рди рд╕реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдЕрдкрдиреЗ рдРрдк рд░реВрдЯ рдХреЛ MySiteDEV, MySitePROD, рдЖрджрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╛рдо рджреЗрдВ рдФрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдирд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдирд╛рдо рдкрд╛рд░реНрд╕ рдХрд░реЗрдВред

рдпрджрд┐ рдЖрдкрдХрд╛ рдХреЛрдб рдкрд░рд┐рд╡реЗрд╢ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрдк IHostingEnvironment .EnvironmentName рд╕реЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдорд╛рди рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рд╕рд┐рд╕реНрдЯрдо рд╡реИрд░рд┐рдПрдмрд▓ рдпрд╛ web.config рд╕реЗ .NET рдХреЛрд░ рд░реАрдбрд┐рдВрдЧ ASPNETCORE_ENVIRONMENT рд╕реЗ рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реИред

@ThisNoName

рд▓реЗрдХрд┐рди рдЖрдк рдореВрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ _env.DEV_ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХреЙрдкреА рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛? рдореИрдВ рдЖрдк рдХреНрдпрд╛ рдХрд╣рддреЗ рд╣реИрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдпрд╣рд╛рдВ рдореБрджреНрджрд╛ рдпрд╣ рдпрд╛рдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ: рд╡рд╣рд╛рдБ рдПрдХ рдЖрдЙрдЯ-рдСрдл-рдж-рдмреЙрдХреНрд╕ рд╕рдорд╛рдзрд╛рди рд╣реИ рдХрд┐ рдмрд╕ рдХрд╛рдо рд╣реБрдЖ рдХрд░рддрд╛ рдерд╛ред рдЕрдм рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЯреВрд▓рд┐рдВрдЧ рд╕рдорд░реНрдерди рдХреЛ рдбреЙрдЯрдиреЗрдЯ рдХреЛрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рдерд╛ред

рдореБрдЭреЗ _why_ рдорд┐рд▓рддрд╛ рд╣реИ рдЗрд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЕрдЪреНрдЫреА рд╕реАрдЖрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ рддреЛ рдмреЗрд╣рддрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ), рд▓реЗрдХрд┐рди рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╣реА рдЕрджреВрд░рджрд░реНрд╢реА рдерд╛ рдЬрдм рдмрд╣реБрдд рд╕реЗ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрднреА рднреА рдЗрд╕реЗ рдЪрд╛рд╣рддреЗ рдереЗред

@рд╡рд┐рд▓рдкреНрдк

рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реЗрдЯрдЕрдк рдХреЗ рджреМрд░рд╛рди рдПрдХ рдмрд╛рд░ рдХреЙрдкреА рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рднрд╡рд┐рд╖реНрдп рдХреА рд╕рднреА рддреИрдирд╛рддреА рдмрд┐рди рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЪрд▓реА рдЬрд╛рддреА рд╣реИред рдХреЛрдИ рдкреБрди: рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ, рдХреЛрдИ рдкреНрд░рдХрд╛рд╢рд┐рдд рдирд╣реАрдВ, рдХреЛрдИ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВред рдЗрд╕ рддрд░рд╣ рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреЛрдб рдХреА рдЕрддрд┐рд░рд┐рдХреНрдд 3 рд▓рд╛рдЗрдиреЗрдВ рд▓реЗрддрд╛ рд╣реИ, рддреЛ рдХреНрдпрд╛? рдпрд╣ рдПрдо $ рд╣реИред 3 рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рддрдХ рдЖрдк Active Directory рдХреЛ .NET Core рдореЗрдВ рдХреЙрд▓ рднреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдереЗред

@ThisNoName рдХреНрдпрд╛ рдЖрдк рдЗрд╕ M$ рд╕рд╛рдорд╛рди рдХреЛ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд▓реЗрдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рдПрд╣рд╕рд╛рд╕ рд╣реИ рдХрд┐ рдпрд╣ 2018 рд╣реИ, рд╣реИ рдирд╛?

рдХрд┐рд╕реА рд╕рд╛рдЭрд╛ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рд╡реЗрдм рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЖрдкрдХреЗ рд╕реБрдЭрд╛рд╡ рдХрд╛ рдХреЛрдИ рдЕрд░реНрде рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдпрд╣ рднреА рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рдХрд┐рд╕рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдпрд╛ рд╡рд┐рд░реЛрдз рдореЗрдВ рдмрд╣рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ ASP.NET рдХреЛрд░ рдХреА рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рддрд╛рдХрд┐ рдкреНрд░рдХрд╛рд╢рд┐рдд рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рдХрд┐рд╕реА рднреА рдкрд░рд┐рд╡рд░реНрддрди рдпрд╛ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдлрд╝реЛрд▓реНрдбрд░ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдЧреИрд░-рдорд╛рдирдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рднреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдЖрдкрдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рд╣реЛ рднреА рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдирд╣реАрдВ рднреАред

@рд╡рд┐рд▓рдкреНрдк , @svallis
рдореИрдВрдиреЗ рдЬрд┐рд╕ рд╕рдорд╛рдзрд╛рди рдХреЛ рдереЛрдбрд╝рд╛ рдФрд░ рдЖрдЧреЗ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рд╣реИ рд╡рд╣ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЖрдк рдпреВрдЖрд░рдПрд▓ рдЦреАрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХрд┐рд╕реА рднреА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рдпреВрдЖрд░рдПрд▓ рдкрд░ рдкреВрд░реНрдг рдирд┐рдпрдВрддреНрд░рдг рд╣реЛрддрд╛ рд╣реИред рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реИ рдХрд┐ рдпрд╣ рдЕрднреА рднреА "рд╣реИрдХрд┐рд╢" рд╣реИ, рдФрд░ рдПрдХ рдХрд╛рдордХрд╛рдЬ рд╣реИ - рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЖрдо рддреМрд░ рдкрд░ рдЬреНрдпрд╛рджрд╛рддрд░ рд╕рдордп рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореЗрд░реА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХрдВрдкрдиреА рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореБрдЭреЗ рдЬреЛ рдпреВрдЖрд░рдПрд▓ рдорд┐рд▓ рд░рд╣рд╛ рдерд╛ рд╡рд╣ рдПрдХ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ: рдкреЛрд░реНрдЯ рдмреЗрд╕ ("127.0.0.1:7777") рдерд╛ - рдЗрд╕рд▓рд┐рдП рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЖрджрд░реНрд╢ рдирд╣реАрдВ рдерд╛ред рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рд╡рд┐рднрд┐рдиреНрди рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдкрд░ рд░реВрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдкрде рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рднреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рд╕рдмрдбреЛрдореЗрди рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ - рдФрд░ рд░реВрдЯ рдРрдк рдкрде рдЦреАрдВрдЪрдирд╛ рднреА рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ:

        public static string DetectAndSet(this IHostingEnvironment env, ILogger logger)
        {
            switch (env.ContentRootPath)
            {
                case "h:\\root\\home\\www\\api":
                    env.EnvironmentName = EnvironmentName.Production;
                    break;
                case "h:\\root\\home\\www\\api-staging":
                    env.EnvironmentName = EnvironmentName.Staging;
                    break;
                default:
                    env.EnvironmentName = EnvironmentName.Development;
                    break;
            }

            logger.LogInformation($"Application root path discovered as '{env.ContentRootPath}'. Environment set to '{env.EnvironmentName}'");

            return env.EnvironmentName;
        }

рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рдХреЛрдб рдХреЗ рднреАрддрд░, рдкрд░рд┐рдирд┐рдпреЛрдЬрди-рд╕рдордп рдкрд░, рдпрд╛ рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рд╕реАрдзреЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдореЗрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВ, рдпрд╣ рд╡рд╣ рдЪрд░реНрдЪрд╛ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдирд┐рдкрдЯрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ - рдореИрдВ рдмрд╕ рдЙрди рдПрд╕рдПрдордИ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдЪрд┐рдд рд╕рдорд╛рдзрд╛рди рдХреА рдкреЗрд╢рдХрд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рд╕реАрдорд┐рдд рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдирд┐рдпрдВрддреНрд░рдг рд╣реИ рдФрд░ рдЬрд┐рдиреНрд╣реЗрдВ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдПрдХ рдмрд╛рд░-рдмрд╛рд░ рднреВрд▓ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдб рд╣реИ - рдареАрдХ рд╡рд╣реА рдЬреЛ рдореБрдЭреЗ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо рдореИрдВ рдЖрд╕рд╛рдиреА рд╕реЗ appsettings.json рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдорд╛рдиреЛрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЦреАрдВрдЪ рд╕рдХрддрд╛ рд╣реВрдВ, рдЬрд┐рд╕рдореЗрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдмрджрд▓рд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:

"{configName}.{environmentName}": "{value}"

рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдФрд░ рдкреНрд░рддрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ 3 рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ - рдкреНрд░рддреНрдпреЗрдХ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХред рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЗрд╡рд▓ рдмрд╣реБрдд рдХрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИрдВ рдФрд░ рдЗрд╕рд▓рд┐рдП рджреЛрд╣рд░рд╛рд╡ рдХреЛрдИ рдмрдбрд╝реА рдмрд╛рдд рдирд╣реАрдВ рд╣реИред

рдЙрдореНрдореАрдж рд╣реИ рдХреА рдпрд╣ рдорджрдж рдХрд░реЗрдЧрд╛!

@challamzinniagroup рд╕рдореНрдореЗрд▓рди рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдкреЗрдХреНрд╖ рдлрд╝реЛрд▓реНрдбрд░ рдкрде рдФрд░ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред

@svallis рдкреВрд░реА рдЕрд╡рдзрд╛рд░рдгрд╛ рдПрдХ рдмрд╛рд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛ рдФрд░ рдмрд╛рдЗрдирд░реА рд╕реНрддрд░ рдкрд░ рддреИрдирд╛рдд рдХрд░рдирд╛ рд╣реИред рддреЛ рдпрджрд┐ рдЖрдк рдкреНрд░рддрд┐ рдкреНрд░рдХрд╛рд╢рд┐рдд рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЪрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЬрд╛рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред

@ThisNoName рдЖрдкрдХреЗ рд▓рд┐рдП, рд╢рд╛рдпрдж рдпрд╣ рдЖрд╕рд╛рди рд╣реИ - рд▓реЗрдХрд┐рди рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдРрд╕реА рдмрд╛рддреЗрдВ рди

@challamzinniagroup рд╕рд╣рдордд рд╣реИрдВред рд╣рд░ рд╕реНрдерд┐рддрд┐ рдЕрд▓рдЧ рд╣реИред рд▓рдмреНрдмреЛрд▓реБрдЖрдм рдпрд╣ рд╣реИ рдХрд┐ рдкрд░реНрдпрд╛рд╡рд░рдг рд╕рд┐рд░реНрдл рдПрдХ рдЪрд░ рд╣реИ, рдЖрдк рдЗрд╕реЗ рд╡реИрд╕реЗ рднреА рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдк рдлрд┐рдЯ рджреЗрдЦрддреЗ рд╣реИрдВ, рдмрдЬрд╛рдп рдЗрд╕рдХреЗ рдХрд┐ Microsoft рдЕрдЧрд▓реА рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдЪреАрдЬрд╝ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗред рдФрд░ рдЬреЛ рдХреБрдЫ рднреА рд╡реЗ рд╕рд╛рдордиреЗ рдЖрддреЗ рд╣реИрдВ, рд╡рд╣ рд╡реИрд╕реЗ рднреА рдПрдХ рдФрд░ рд╕рдореНрдореЗрд▓рди рдЖрдзрд╛рд░рд┐рдд рд╕рдорд╛рдзрд╛рди рд╣реИ - рд╕рд┐рд╕реНрдЯрдо рдпрд╛ web.config рд╕реЗ рдХреБрдЫ рдореВрд▓реНрдп рдкрдврд╝рдирд╛ рдФрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рд╕реЗрдЯ рдХрд░рдирд╛ред

рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ, рдЖрдк рдЕрднреА рднреА рд╕рдореНрдореЗрд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдХрд╣рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдРрдкрд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рдПрдХрд▓ рдордзреНрдп рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ рдФрд░ рд╕реНрдЯреЗрдЬрд┐рдВрдЧ/рдкреНрд░реЛрдбрдХреНрд╢рди рдХрд╛ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдЕрд░реНрде рдирд╣реАрдВ рд╣реИред рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдРрд╕рд╛ рдХреБрдЫ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдорд┐рд▓рд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝реЛрд▓реНрдбрд░ рдирд╛рдо рдореЗрдВ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

appsettings.api.json
appsettings.api-staging.json

рд╕рдореНрдореЗрд▓рди рдЖрдзрд╛рд░рд┐рдд рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде, рдЖрдк рдкреБрди: рд╕рдВрдХрд▓рд┐рдд рдФрд░/рдпрд╛ рдкреБрдирд░реНрдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдирдП рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рд╕реНрдкрд┐рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@vijayrkn рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ pubxml рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ
рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдПрд╕рдбреАрдХреЗ рдХреЛ 2.1.302 (x64) рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рд╣реИ, рдореЗрд░рд╛ рдкрдмрдПрдХреНрд╕рдПрдордПрд▓ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдкреНрд░рдХрд╛рд╢рд┐рдд рд╡реЗрдм.рдХреЙрдиреНрдлрд┐рдЧ рдкрд░ рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ред

@wggley -

рдЖрдк рдпрд╣рд╛рдВ рд╕реЗ рдлрд┐рдХреНрд╕ рд╡рд╛рд▓реЗ рдХреНрд▓реА рдХреЗ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЖрдЬрдорд╛ рд╕рдХрддреЗ рд╣реИрдВ - https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.4xx/dotnet-sdk-latest-win-x64.exe

рдпрджрд┐ рдЖрдкрдХреЛ рдЙрдкрд░реЛрдХреНрдд рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдЖрддреА рд╣реИ рддреЛ рдореБрдЭреЗ рдмрддрд╛рдПрдВред

рдзрдиреНрдпрд╡рд╛рдж @vijayrkn рдореИрдВ рдЕрдЧрд▓реА рдЖрдЧрд╛рдореА рд░рд┐рд▓реАрдЬ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реВрдВрдЧрд╛ рдФрд░ рдПрдХ рдирдП рдкреНрд░рдХрд╛рд╢рди рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ред
рдореИрдВ рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ @frankhoffy рд╕рдорд╛рдзрд╛рди рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдЖрдХрд░реНрд╖рдг рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд┐рдпрд╛:
https://stackoverflow.com/questions/31049152/publish-to-iis-setting-environment-variable/36836533#36836533
рдкрд╣рд▓реЗ рдЙрддреНрддрд░ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВ (рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╡реЛрдЯ рджрд┐рдпрд╛ рдЧрдпрд╛ рдЙрддреНрддрд░)ред

рдкреНрд░рдХрд╛рд╢рди рдХреЗ рджреМрд░рд╛рди рд╡реЗрдм рдХреЙрдиреНрдлрд┐рдЧ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рд╕рдкреЛрд░реНрдЯ рдЕрдм 2.2 рдкреНрд░реАрд╡реНрдпреВ1 рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ https://www.microsoft.com/net/download/dotnet-core/2.2

@vijayrkn рдХрд╣реАрдВ рдореВрд▓ рдирдореВрдирд╛ рд╣реИ? ASPNETCORE_ENVIRONMENT рд╕реЗрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдореВрд▓ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЛрдЧреЛрдВ рдХреЛ рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб рдХреЗ рд╕рдордХрдХреНрд╖ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

ASPNETCORE_ENVIRONMENT рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ msbuild рд╕рдВрдкрддреНрддрд┐ '$(EnvironmentName)' рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдПрдХ рдирдореВрдирд╛ рдЬреЛрдбрд╝реВрдВрдЧрд╛ рдЬреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ web.config рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреНрдп env рдЪрд░ рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВред

рдпрд╣рд╛рдБ рдПрдХ рдирдореВрдирд╛ рд░реЗрдкреЛ рд╣реИ - https://github.com/vijayrkn/webconfigtransform

рд░реАрдбрдореА рдХреЗ рдкрд╛рд╕ рд╡рд┐рд╡рд░рдг рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
https://github.com/vijayrkn/webconfigtransform/blob/master/README.md

рдЙрдореНрдореАрдж рд╣реИ рдХреА рдпрд╣ рдорджрдж рдХрд░реЗрдЧрд╛!

@Eilon - рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рддрдп рд╣реИ рдФрд░ рдирд╡реАрдирддрдо рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред

@vijayrkn рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкрдмреНрд▓рд┐рд╢ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдбрд╛рдпрд▓реЙрдЧ рд╕реЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрдмреНрд▓рд┐рд╢ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдХреИрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдП? рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рд╕рд╛рдЗрдЯ рдХреЛ рдкреНрд░реЛрдбрдХреНрд╢рди рд╕рд╛рдЗрдЯ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдбрд╛рдпрд▓реЙрдЧ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЕрдЧрд░ рджреЛрдиреЛрдВ рд╕рд╛рдЗрдЯ рдПрдХ рд╣реА рд╕рд░реНрд╡рд░ рдкрд░ рддреИрдирд╛рдд рдХреА рдЬрд╛ рд░рд╣реА рд╣реИрдВ?

.NET рдХреЛрд░ рдХрд╛ рдпрд╣ рдкрд╣рд▓реВ рдмрд╣реБрдд рдЧрдиреНрджрд╛ рд▓рдЧрддрд╛ рд╣реИред рдкреНрд░рддрд┐-рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкрд░рд┐рд╡реЗрд╢ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдмрд╣реБрдд рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрдХ рд╕рдВрдкреВрд░реНрдг-рд╕рд░реНрд╡рд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╣рдорд╛рд░реА рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╣рд░ рдХреЛрдИ рдЕрдкрдиреА рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рд╕рд╛рдЗрдЯреНрд╕ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рд░реНрд╡рд░ рдкрд░ рдЕрдкрдиреА рдкреНрд░реЛрдбрдХреНрд╢рди рд╕рд╛рдЗрдЯреНрд╕ рдкрд░ рдирд╣реАрдВ рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реИред

рд╕реЗрдЯрд┐рдВрдЧ рдкреНрд░рддрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИред

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрд░реЗ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рд╢рд╛рдпрдж рдореИрдВ рдХреБрдЫ рдЧрд▓рдд рд╕рдордЭ рд░рд╣рд╛ рд╣реВрдБред

рдпрд╣рд╛рдВ рдХреБрдЫ рдЫрджреНрдо рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реИрдВ https://github.com/vijayrkn/webconfigtransform/blob/master/README.md ( @vijayrkn рд╣рдореЗрдВ рдЗрд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЙрдХреНрд╕ рдореЗрдВ рд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)ред

@vijayrkn рдкреНрд░рдХрд╛рд╢рд┐рдд рд╕рдВрд╡рд╛рдж рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд┐рддрдирд╛ рд╕рдорд░реНрдерди рд╣реИ?

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╕рдВрд╡рд╛рдж рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдкрд░рд┐рд╡реЗрд╢реЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рдкрд░рд┐рд╡реЗрд╢реЛрдВ рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реВрдкрд╛рдВрддрд░рдг рд▓рд╛рдЧреВ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

@ nmg196 - рдпрджрд┐ рдЖрдк web.config рдореЗрдВ 'ASPNETCORE_ENVIRONMENT' рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдкрдмреНрд▓рд┐рд╢рдкреНрд░реЛрдлрд╛рдЗрд▓ рдореЗрдВ рдкрд░реНрдпрд╛рд╡рд░рдгрдирд╛рдо рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред

рдЙрджрд╛рд╣рд░рдг:
https://github.com/vijayrkn/webconfigtransform/blob/master/Properties/PublishProfiles/FolderProfile.pubxml#L18

рдЙрдиреНрдирдд рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП (ASPNETCORE_ENVIRONMENT рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛) web.config рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо рдХреЛ рдКрдкрд░ рджрд┐рдП рдЧрдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рдмрддрд╛рдП рдЕрдиреБрд╕рд╛рд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

@davidfowl -

@vijayrkn рдЯреАрдПрдлрдПрд╕ рдХреЗ рд╕реАрдЖрдИ/рд╕реАрдбреА рдореЗрдВ рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ? рдореИрдВ рдкреА рдХреЗ рд╕рд╛рде рдбреЙрдЯрдиреЗрдЯ рдкреНрд░рдХрд╛рд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛: рдЯреАрдПрдлрдПрд╕ рдореЗрдВ CustomTransformFileName

рдЖрдк рдЗрд╕ рдПрдордПрд╕рдмрд┐рд▓реНрдб рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдбреЙрдЯрдиреЗрдЯ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдк рдЗрд╕ рдирдореВрдиреЗ рдХреЛ рдпрд╣рд╛рдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ - https://github.com/vijayrkn/webconfigtransform/blob/master/publish.cmd

рдпрд╣ CustomTransformFileName рдЧреБрдг рдХреЛ рдбреЙрдЯрдиреЗрдЯ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ

dotnet publish /p:Configuration=Release /p:EnvironmentName=Staging /p:CustomTransformFileName=custom.transform

@vijayrkn
рдореИрдВрдиреЗ рдЖрдкрдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрдврд╝ рд▓рд┐рдП рд╣реИрдВ рдФрд░ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП web.config рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдореИрдВрдиреЗ рдореВрд▓ рд░реВрдк рд╕реЗ рдЙрди рд╕рднреА рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ readme.md рдореЗрдВ рд╣реИрдВ рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдПрдХ рдкрд╛рд╡рд░рд╣реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВ рдЬреЛ рдкреНрд░рдХрд╛рд╢рди рдСрдкрд░реЗрд╢рди рд╕реЗ рдЕрд▓рдЧ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Microsoft.Web.XmlTransform.dll рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдореЗрд░рд╛ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдПрдордПрд╕рдмрд┐рд▓реНрдб рдФрд░ рдбреЙрдЯрдиреЗрдЯ рдХрд╛
рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ:
рдбреЙрдЯрдиреЗрдЯ --рд╕рдВрд╕реНрдХрд░рдг 2.1.104
рдбреЙрдЯрдиреЗрдЯ рдПрдордПрд╕рдмрд┐рд▓реНрдб-рд╕рдВрд╕реНрдХрд░рдг 15.6.84.34536

рдзрдиреНрдпрд╡рд╛рдж

@stephenarsenault1
рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд░реЛрд╢рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдпрд╣рд╛рдВ рд╕реЗ рдХрд┐рд╕реА рднреА рдмрд┐рд▓реНрдб рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - https://www.microsoft.com/net/download/dotnet-core/2.2

рдирд╡реАрдирддрдо - https://www.microsoft.com/net/download/thank-you/dotnet-sdk-2.2.100-preview3-windows-x64-installer

@davidfowl рдиреЗ рд▓рд┐рдЦрд╛:

рдпрд╣рд╛рдВ рдХреБрдЫ рдЫрджреНрдо рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реИрдВ https://github.com/vijayrkn/webconfigtransform/blob/master/README.md ( @vijayrkn рд╣рдореЗрдВ рдЗрд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЙрдХреНрд╕ рдореЗрдВ рд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)ред

@vijayrkn рдкреНрд░рдХрд╛рд╢рд┐рдд рд╕рдВрд╡рд╛рдж рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд┐рддрдирд╛ рд╕рдорд░реНрдерди рд╣реИ?

рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕реЗ рдХрднреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛, рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рд▓рд┐рдВрдХ рд╣реИ?

рдЕрдм рд╣рдо рдЕрдкрдиреА рдкреНрд░рдХрд╛рд╢рд┐рдд рдкреНрд░реЛрдлрд╛рдЗрд▓ рдореЗрдВ <EnvironmentName> рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝ рдЧрдП рд╣реИрдВред рдЗрд╕рдХреЗ рдКрдкрд░ рдХреБрдЫ UI рд░рдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдпрд╣ рдЕрдзрд┐рдХ рджреГрд╢реНрдпрдорд╛рди рд╣реЛ, рд╣рд╛рд▓рд╛рдВрдХрд┐ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╛рдж рдХреА рддрд╛рд░реАрдЦ рдореЗрдВ рдЖрдПрдЧрд╛?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИред dotnet рдкреНрд░рдХрд╛рд╢рди рдкрд░ web.config рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдХрд░рддрд╛ рд╣реИред .NET рдХреЛрд░ рдПрд╕рдбреАрдХреЗ 2.2.101 рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕рдиреЗ рд╣рдорд╛рд░реЗ рд╕реАрдЖрдИ/рд╕реАрдбреА рдкрд░рд┐рджреГрд╢реНрдп рдХреЛ рддреЛрдбрд╝ рджрд┐рдпрд╛ред рд╣рдорд╛рд░реА рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХрд┐рд╕реА рднреА рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП dotnet publish рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЖрд░реНрдЯрд┐рдлреИрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЧрдИ рд╣реИ ( рдПрдХ рдмрд╛рд░ рдирд┐рдпрдо рдмрдирд╛рдПрдВ), рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдирд┐рдпреЛрдЬрди (рдСрдХреНрдЯреЛрдкрд╕ рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд) рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдореБрдЭреЗ рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рдХреЛрдИ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рддреИрдирд╛рддреА рдХреЗ рдмрд╛рдж web.config рдореЗрдВ рджреЛрдЧреБрдиреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмреНрд▓реЙрдХ рдХрд╛ рдХрд╛рд░рдг рдХреНрдпрд╛ рд╣реИ, рдпрд╣ рдЬрд╛рдирдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рдордп рдмрд┐рддрд╛рдпрд╛ред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдкрд░рд┐рд╡рд░реНрддрди рджреЛ рдмрд╛рд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: dotnet publish рджреНрд╡рд╛рд░рд╛ рдФрд░ рд░рд┐рд▓реАрдЬ рдкреНрд░рдмрдВрдзрди рдЙрдкрдХрд░рдг рджреНрд╡рд╛рд░рд╛ред

<IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled> рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде web.config рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдореЗрд╢рди рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, TransformWebConfig рдХреЛ рднреА рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ (рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдордПрдХреНрд╕рдПрдордПрд▓ рдХреЗ рд╕рд╛рде), рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк %LAUNCHER_PATH% рдФрд░ %LAUNCHER_ARGS% рд╡реИрд░рд┐рдПрдмрд▓ рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдХреНрдпрд╛ рдЗрди рдЪрд░рдгреЛрдВ рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реЗрдЯрд┐рдВрдЧ рд╣реИ?

рдХреНрдпрд╛ рдпрд╣ App.Config рдлрд╝рд╛рдЗрд▓ рд╡рд╛рд▓реЗ рдХрдВрд╕реЛрд▓ рдРрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?

рдХреНрдпрд╛ рд╣рдо рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ?

@dmitryshunkov рдЖрдк рдХрд╕реНрдЯрдо Xml рдЯреНрд░реЕрдирдлреЙрд░реНрдо рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП $(RunXdt) рдХреЛ рдЧрд▓рдд рдкрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@auserx - рдЕрдЧрд░ рдпрд╣ рдПрдХ рдПрд╕рдбреАрдХреЗ рд╕реНрдЯрд╛рдЗрд▓ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ, рддреЛ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕