Ядро
do tnet обрабатывает это по-другому. Полная структура, основанная на преобразовании app.config. Это означает, что вы определили один файл, который позже был передан для данной конфигурации сборки (например, Debug, Release или ваш собственный). В do tnet core вы определяете настройки приложения. json для каждой среды. Это работает очень хорошо, потому что все настройки находятся в вашем скомпилированном приложении. И затем во время выполнения на основе переменной окружения ASPNETCORE_ENVIRONMENT
выбираются правильные настройки. Таким образом, вы можете иметь один пакет для всех ваших сред без перекомпиляции. Чтобы извлечь выгоду из этого, вы должны определить файл для каждой среды, но это не преобразование. Это полный файл.
Например, файл для вашего локального проекта может выглядеть так:
{
"ConnectionStrings": {
"BloggingDatabase": "Server=(localdb)\\mssqllocaldb;Database=EFGetStarted.ConsoleApp.NewDb;Trusted_Connection=True;"
},
}
И файл для вашей среды разработки appsettings.dev.json
, например:
{
"ConnectionStrings": {
"BloggingDatabase": "Server=102.10.10.12\\mssqllocaldb;Database=EFGetStarted.ConsoleApp.NewDb;Trusted_Connection=True;"
},
}
А затем, чтобы настроить загрузку этого файла, вы должны настроить Startup
метод:
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();
this.Configuration = builder.Build();
}
Это загрузит все ваши файлы appsettings и позже будет использовать правильный файл, основанный на переменной среды.
Чтобы установить эту переменную, вы можете использовать эту команду в командной строке setx ASPNETCORE_ENVIRONMENT Dev
или в Powershell [Environment]::SetEnvironmentVariable("ASPNETCORE_ENVIRONMENT", "Dev", "Machine")
. Надеюсь, она поможет вам понять, как работают настройки на ядре do tnet. Если вам нужны дополнительные рекомендации, проверьте ссылки:
Подводя итог, вам не нужно менять настройки в конвейере выпуска. Вам нужно предварительно подготовить полный файл для enviro mnet, где вы собираетесь разместить свое приложение. Вы можете быть заинтересованы в замене некоторых значений в файле на основе переменных в вашем конвейере. Здесь можно рассмотреть несколько вариантов, например
Это полезно, если вы не хотите хранить свои секреты непосредственно в исходном коде.
РЕДАКТИРОВАТЬ
Если вы хотите заменить значения в вашем файле appsettings одним из опция - замена токена. Для этого вы должны сначала вместо значений сохранить токен в вашем файле. Например, #{SomeVariable}#
будет заменено значением SomeVariable` из вашего конвейера для этого подтверждения задача замены токена .