如何在预构建事件中更新.config项值

时间:2018-04-05 10:24:50

标签: c# bash visual-studio pre-build-event

我有一个app.config文件(最初)看起来像这样:

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

我需要一种在预构建事件中更新'[MySetting]'值的方法,而不会将另一个.config文件复制到此文件中。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以使用powershell脚本替换&#39;模板&#39;具有所需的价值。

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

<强>更新

如果你想混合构建环境--linux和windows,请确保你有一个可以在两个系统上运行的脚本(即p​​ython)或使用powershell或(xor ^ _ ^)sed但是可以从两个系统运行使用cmd标签的系统在linux上被忽略 - 有关更多信息,请参阅Cross-platform command line script (e.g. .bat and .sh)

示例:

:; someLinuxCommand.sh
:; exit
windowsCommandHere.cmd

Single script to run in both Windows batch and Linux Bash?