2 種類のテンプレート変数を含むアプリ構成ファイルがあります。最初のセットは、ビルド時にいくつかの PowerShell スクリプトによって設定されます。2 番目は構成ファイル内に残りますが、実行時に使用されます。
したがって、ソース管理下では、ファイルは次のようになります。
<property name="$($settings.elementName)" value="${valueThatIsSubstitutedAtRuntime}" />
ビルド後、次のようになりたいです:
<property name="settingFromPosh" value="${valueThatIsSubstitutedAtRuntime}" />
しかし、残念ながらそれは次のように出てきます
<property name="settingFromPosh" value="" />
Powershell for Developers で説明されているテンプレート メソッドを少し変更したバージョンを使用しています。基本的に、代用する変数を ScriptBlock に入力し、テンプレートを読み取り、テンプレートの内容で Invoke-Expression を呼び出します。スクリプトは、検出できる値を正常に置換しますが、検出できない値は消去します。
テンプレート内で ps の全機能を使用したいので、正規表現トークンの置換を使用することに消極的です。また、ビルド中に入力したくない値に別の変数トークンを導入したくありません。
置換できない変数をそのままにしておくか、おそらくそれらをエスケープして無視する方法はありますか?