|
net core project appsetting by project config
|
|||
---|---|---|---|
#18+
Добрый день. В проектах .Net Core из коробки идет подбор настроек из appsetting{.environment}.json Вопрос. Как сделать так, чтобы 3 копии сервиса могли находится на одном сервере (например 3 разных теста под разные офисы), но подтягивались соответствующие настройки для каждого свои. Учитывая что переменные окружения на сервере общие для всех четырех будут. Хочется чтобы все настройки были уже прописаны в проекте и при деплое их не было нужды менять. т.е. по сути сделать зависимость appsettings.json от project (solution) configuration В .net framework проектах использовался xml transform и там это делили конфигурациями Test BY/Test RU/Test KZ При сборке в каждую папку конфигурации клались app.xml и применялись трансформации. Получалось 3 папки с одним файлом настроек. А .net core проектах как я вижу отвязали от конфигурации конфиги, а привязали к окружению. Получается 1 папка с 3-мя файлами конфигурации. Но это хорошо когда 1 сервис 1 окружение. А у нас один сервер и 3 сервиса под разные офисы ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 15:00 |
|
net core project appsetting by project config
|
|||
---|---|---|---|
#18+
X-Cite Добрый день. В проектах .Net Core из коробки идет подбор настроек из appsetting{.environment}.json Вопрос. Как сделать так, чтобы 3 копии сервиса могли находится на одном сервере (например 3 разных теста под разные офисы), но подтягивались соответствующие настройки для каждого свои. Учитывая что переменные окружения на сервере о бщие для всех четырех будут . Хочется чтобы все настройки были уже прописаны в проекте и при деплое их не было нужды менять. т.е. по сути сделать зависимость appsettings.json от project (solution) configuration В .net framework проектах использовался xml transform и там это делили конфигурациями Test BY/Test RU/Test KZ При сборке в каждую папку конфигурации клались app.xml и применялись трансформации. Получалось 3 папки с одним файлом настроек. А .net core проектах как я вижу отвязали от конфигурации конфиги, а привязали к окружению. Получается 1 папка с 3-мя файлами конфигурации. Но это хорошо когда 1 сервис 1 окружение. А у нас один сервер и 3 сервиса под разные офисы Терзает смутное сомнение, что вы пытаетесь ввести нас в заблуждение самим рассказом, но с какой целью? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 15:27 |
|
net core project appsetting by project config
|
|||
---|---|---|---|
#18+
Ролг Хупин, Так проще... Доработки редкие. Настройки меняются очень редко. При чем если меняют на сервере то меняют и в проекте. Собрал три билда и Ctrl+C Ctrl+V как есть на сервер каждую папку на свое место. Не задумываясь тот конфиг там или не тот. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 15:42 |
|
net core project appsetting by project config
|
|||
---|---|---|---|
#18+
X-Cite Ролг Хупин, Так проще... Доработки редкие. Настройки меняются очень редко. При чем если меняют на сервере то меняют и в проекте. Собрал три билда и Ctrl+C Ctrl+V как есть на сервер каждую папку на свое место. Не задумываясь тот конфиг там или не тот. Вы как-то плохо объясняете. 3 копии сервиса на одном сервере, ну, в разных фолдерах, у кажого свой appsetting.json, в чем проблема? Делать обратную зависимость файла от solution - это просто ненужный головняк. Пример какой-то приведите ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 15:45 |
|
net core project appsetting by project config
|
|||
---|---|---|---|
#18+
Ролг Хупин X-Cite Ролг Хупин, Так проще... Доработки редкие. Настройки меняются очень редко. При чем если меняют на сервере то меняют и в проекте. Собрал три билда и Ctrl+C Ctrl+V как есть на сервер каждую папку на свое место. Не задумываясь тот конфиг там или не тот. 3 копии сервиса на одном сервере, ну, в разных фолдерах, у кажого свой appsetting.json, в чем проблема? Как в проекте описать эти appsetting.json и положить туда настройки под каждый свои? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 15:51 |
|
net core project appsetting by project config
|
|||
---|---|---|---|
#18+
X-Cite Ролг Хупин пропущено... 3 копии сервиса на одном сервере, ну, в разных фолдерах, у кажого свой appsetting.json, в чем проблема? Как в проекте описать эти appsetting.json и положить туда настройки под каждый свои? Есть такой анекдот ------------- Маленькая девочка две недели готовилась к приходу Деда Мороза, учила стишок, шила платьице и все такое. Новогодняя ночь, звонок в дверь. Девочка с криком: "Я сама, сама открою!" бежит открывать дверь, спотыкается и падает. Открывает дверь, хныкая и утирая сопли. На пороге стоит румяный и пьяный в дым Дед Мороз. Дед Мороз радостным басом: - Здравствуй, девочка, здравствуй милая. С Новым Годом тебя! А что же ты плачешь? Девочка сквозь слезы и слюни: - Я тебя так ждала, дедушка, стишок учила, платьице шила, сейчас бежала дверь открывать, упала, порвала платьице и стишок (рыдания) забы-ыла... Дед Мороз с искренней грустью, разводя руками: - Девочка, ну не ** же ж твою ****! ========== Вариант: Вы можете добавить в прожект один главный файл appsettings.json и appsettings1.json appsettings2.json appsettings3.json Главный содержит какую-то фигню общую для всех, если есть. Приложение загружает два файла конфига appsettings.json и appsettingХ.json перед тем, определив Х Или, если главный нахрен не нужен, тогда один с буквой Х. Ну, как такое? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 15:58 |
|
net core project appsetting by project config
|
|||
---|---|---|---|
#18+
X-Cite Как в проекте описать эти appsetting.json и положить туда настройки под каждый свои? Вот тут все подробно описано https://docs.microsoft.com/ru-ru/aspnet/core/fundamentals/configuration/?view=aspnetcore-3.1 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 16:18 |
|
net core project appsetting by project config
|
|||
---|---|---|---|
#18+
Ролг Хупин, Shocker.Pro, Разница в том, что при билде все файлы будут лежать вместе с приложением... А основной посыл, для каждого билда один свой конфиг. Вообщем в старом проекте использовалось расширение к VS Configuration Transform которое позволяло делать так, как на картинке. И при билде в папку помещался только один конфиг файл. По тому что делает VS c json файлами и окружением я предположил что можно сделать также из коробки. Как-то привязать файлы к конкретному билду. Т.е. вопрос надо было сформулировать по другому.. Как в зависимости от билда положить в папку только нужный json конфиг? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 16:41 |
|
net core project appsetting by project config
|
|||
---|---|---|---|
#18+
Я головой понимаю, что использовать билды только для разделения настроек и деплоя - это немного попахивает.. Но сердце говорит, что пока надо так. Одно из решений о котором я думал, это всем файлам конфига проставить Copy To Output Directory "Do not copy" А в BuildEvents можно было бы прописать копирование с переименованием, но оно тоже одно на проект, не зависит от билда. Мне вообще не понятен процесс доставки конфига, если к примеру он уже настроен в продакшене, и тут в конфиг добавили параметров. Просто так заменить не нельзя, если параметры в проекте и в продакшене отличаются. Объяснять админам куда что они должны руками дописать тоже такое себе... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 17:08 |
|
net core project appsetting by project config
|
|||
---|---|---|---|
#18+
X-Cite для каждого билда Я лично использовать в этой ситуации вот такую добавку к проекту Код: xml 1. 2. 3.
Соответственно, appsettings.json содержит общие для всех настройки, а appsettings.deploy.json - копия файла, соответствующего выбранной конфигурации. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 17:15 |
|
net core project appsetting by project config
|
|||
---|---|---|---|
#18+
Я вообще что-то не пойму проблемы, которую обсуждают. Деплоишь вместе с appsettings.json все appsettings.BlaBlaBla.json, а потом перед запуском приложения/сервиса выбираешь нужный BlaBlaBla через Код: powershell 1.
или Код: powershell 1.
В коде менять ничего не надо - при дефолтных настройках все и так сработает. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2020, 18:15 |
|
net core project appsetting by project config
|
|||
---|---|---|---|
#18+
fkthat Я вообще что-то не пойму проблемы ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2020, 19:23 |
|
net core project appsetting by project config
|
|||
---|---|---|---|
#18+
Shocker.Pro fkthat Я вообще что-то не пойму проблемы В "Properties/launchSettings.json" создаешь соответствующий раздел в profiles Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
и при запуске выбираешь на панельке из выпадающего списка имя профиля "FooApp/BlaBlaBla". А если хочешь запускать из .NET CLI, то к "dotnet run" добавляешь параметр --launch-profile "FooApp/BlaBlaBla". ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2020, 21:40 |
|
net core project appsetting by project config
|
|||
---|---|---|---|
#18+
Так блин, профиль и конфигурация - не одно и то же. ТС же пишет X-Cite Я головой понимаю, что использовать билды только для разделения настроек и деплоя - это немного попахивает.. Но сердце говорит, что пока надо так ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 00:07 |
|
net core project appsetting by project config
|
|||
---|---|---|---|
#18+
Shocker.Pro Так блин, профиль и конфигурация - не одно и то же. Через профиль можно задать environment, а через environment конфигурацию. Или же я чего-то недопонимаю что еще надо. ТСКак сделать так, чтобы 3 копии сервиса могли находится на одном сервере (например 3 разных теста под разные офисы), но подтягивались соответствующие настройки для каждого свои. Я показал как. Если проблема в этом: ТСпеременные окружения на сервере общие для всех четырех будут. то, могу разочаровать - "общими" они не будут. Переменные окружения копируются в процесс в момент его создания из родительского процесса, и никакие последующие их изменения никак ни на что не влияют. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 00:54 |
|
net core project appsetting by project config
|
|||
---|---|---|---|
#18+
Код: c# 1. 2. 3. 4.
Код: powershell 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 01:19 |
|
net core project appsetting by project config
|
|||
---|---|---|---|
#18+
Еще, кстати, можно ведь вообще и без переменных окружения обойтись. При запуске dotnet.exe просто задать ему опцию "--environment BlaBlaBla". ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 01:34 |
|
net core project appsetting by project config
|
|||
---|---|---|---|
#18+
fkthat Через профиль можно задать environment, а через environment конфигурацию. Или же я чего-то недопонимаю что еще надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 12:24 |
|
net core project appsetting by project config
|
|||
---|---|---|---|
#18+
Shocker.Pro fkthat Через профиль можно задать environment, а через environment конфигурацию. Или же я чего-то недопонимаю что еще надо. Так это та конфигурация, что указывает параметры сборки. Т.е. и деплоить надо в разные папки, и в чем тогда проблема в разные папки деплоить разные сеттингсы. Все это вообще оставляет впечатление какой-то изначальной кривизны и костылей, возможно, мы стали свидетелями появления на свет очередного WTFа. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 17:46 |
|
|
start [/forum/topic.php?fid=20&msg=40017611&tid=1398428]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
186ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 254ms |
total: | 542ms |
0 / 0 |