我有一个包含两种模板变量的应用程序配置文件。第一个集合将在构建时由一些 powershell 脚本填充。第二个保留在配置文件中,但在运行时使用。
因此,在源代码管理下,该文件可能如下所示:
<property name="$($settings.elementName)" value="${valueThatIsSubstitutedAtRuntime}" />
构建后,我希望它是:
<property name="settingFromPosh" value="${valueThatIsSubstitutedAtRuntime}" />
但不幸的是,它的出现是
<property name="settingFromPosh" value="" />
我正在使用 Powershell for Developers 中描述的模板方法的略微修改版本。基本上,我使用要替换的变量填充 ScriptBlock,读取模板并使用模板内容调用 Invoke-Expression。它成功替换了它可以找到的值但也清除了它不能找到的任何值的脚本。
我不愿意使用正则表达式令牌替换,因为我想要模板中 ps 的全部功能。此外,我不想为我不想在构建期间填充的值引入不同的变量标记。
有没有办法将变量保留在无法替换的位置,或者可能将它们转义以使它们被忽略?