Можно ли оставить appsettings.json редактируемым после развертывания при использовании параметра публикации одного файла для VS2019 / .Net Core 3.1?

У меня есть простое консольное приложение, которому нужно загрузить свою конфигурацию из appsettings.json. Я публикую с VS2019, используя опцию «Создать один файл».

По умолчанию при публикации appsettings.json помещается в один файл. Для меня это бесполезно, потому что я хочу иметь возможность редактировать файл конфигурации на месте на сервере Linux, где он будет развернут.

Можно исключить appsettings.json из связанного файла, добавив параметр к его записи в файле проекта - <ExcludeFromSingleFile>true</ExcludeFromSingleFile> отлично работает и заставляет VS2019 публиковать файл appsettings.json вместе с двоичным файлом.

Тем не мение...

Когда я запускаю двоичный файл (из /opt/MyApp/MyApp) и регистрирую местоположение, из которого он пытается загрузить appsettings.json, я вижу:

Loading settings from /var/tmp/.net/MyApp/jq1u11uk.4ap/appsettings.json

Итак, мой отредактированный /opt/MyApp/appsettings.json игнорируется.

Есть ли какой-то предполагаемый способ сохранить appsettings.json редактируемым при использовании этой опции публикации?

(Этот вопрос также задавали на Как обрабатывать Appsettings для автономной публикации одного файла .net core 3.1, но ни разу не получил ответа таким образом, чтобы решить возможность редактирования файла на месте.)


person jlmt    schedule 30.05.2020    source источник
comment
Зачем нужно редактировать appsettings.json? Вы можете изменить значения настроек, используя переменные среды.   -  person Pavel Anikhouski    schedule 30.05.2020
comment
Спасибо - оценил, что есть другие подходы, но в этом случае я ищу возможность редактировать текстовый файл.   -  person jlmt    schedule 30.05.2020
comment
Это также полезно, если вы динамически монтируете appSettings, используя что-то вроде Vault от Hashicorp.   -  person Raphael    schedule 07.04.2021


Ответы (1)


Оказывается, это было решено в другом месте - теперь работает хорошо после этого ответа: https://stackoverflow.com/a/58307732/2847257

person jlmt    schedule 30.05.2020