Как обновить значение элемента .config в событии перед сборкой

У меня есть файл app.config, который (изначально) выглядит так:

<configuration>
 <appSettings>
   <add key="MySetting" value="[MySetting]" />
 </appSettings>
</configuration>

Мне нужен способ обновить значение «[MySetting]» в событии перед сборкой без копирования другого файла .config в этот. Есть ли способ сделать это?


person user2081328    schedule 05.04.2018    source источник


Ответы (1)


вы можете использовать скрипт powershell, который заменит «шаблоны» желаемыми значениями.

[IO.File]::ReadAllText("$DIR\app.template.config").Replace("[MySetting]", $MySettingValue) | Set-Content "$DIR\app.config"

Обновить

Если вы хотите смешивать среды сборки — Linux и Windows, убедитесь, что у вас есть скрипт, который либо запускается в обеих системах (например, Python), либо использует powershell или (xor ^_^) sed, но делает его запускаемым из обеих систем с помощью cmd. метка, которая игнорируется в Linux — для получения дополнительной информации см., например, сценарий командной строки платформы (например, .bat и .sh)

пример:

:; someLinuxCommand.sh
:; exit
windowsCommandHere.cmd

Один сценарий для запуска как в Windows, так и в Linux Баш?

person Miq    schedule 05.04.2018
comment
Спасибо за быстрый ответ. К сожалению, у меня нет опыта использования скриптов powershell, есть только некоторый опыт использования событий до и после сборки. Как мне использовать это в моем событии перед сборкой? - person user2081328; 05.04.2018
comment
создайте скрипт ps1 и выполните его — см. здесь: stackoverflow. ком/вопросы/6500320/ - person Miq; 05.04.2018
comment
Спасибо, это прекрасно работает, но, к сожалению, не решает мою проблему. Проект должен быть собран в центре приложений, и он не поддерживает powershell :(. В любом случае, мне сделать это с помощью bash? - person user2081328; 05.04.2018