インストール中にプロジェクトXMLにいくつかのMSBuildエントリを追加するNugetパッケージがあります。これは正常に機能し、(他のエントリの中でも)次のようになります。
<PropertyGroup>
<JsCompilationToolsPath>some/path/determined/at/runtime</JsCompilationToolsPath>
</PropertyGroup>
ただし、アンインストール中にプロパティ(およびその結果のグループ要素)を削除するのに問題があります。私のPowerShell-fuにはまだまだ多くの要望がありますが、これまでにいくつかのアプローチを試しました。
JsCompilationToolsPath
;という名前のProperty要素が少なくとも1つあるすべてのPropertyGroup要素を削除します。- 名前の付いたすべてのProperty要素
JsCompilationToolsPath
を削除してから、子要素を持たないすべてのPropertyGroup要素を削除します。 - 名前付きプロパティオブジェクトを削除するだけです。
後者の試みは次のとおりです。
$msBuildProject.Properties | Where-Object { $_.Name -eq "JsCompilationToolsPath" } | ForEach-Object { $msBuildProject.RemoveProperty($_) }
どのアプローチも効果はありません。スクリプトはエラーなしで実行されますが、プロパティ要素は削除されません。
PowerShellを介してMSBuildプロパティを削除する正しい方法は何ですか?