プロジェクトのxmlからアイテムを削除するときに、nugetアンインストールスクリプトで何をする必要があるかについて少し混乱しています。まず、以下の基本的なスクリプトが機能します。インストールスクリプトで追加したアイテムが正しく削除されます。ただし、アンインストールプロセスが終了しても、プロジェクトはダーティとしてマークされているため、保存する必要があります。終わったら、それを全部やってもらいたいです。これが私が持っているコードです:
Import-Module (Join-Path $toolsPath msbuild.psm1)
#
# Get the project
#
$project = Get-Project
$buildProject = Get-MSBuildProject
#
# Next, add the import statements
#
$imports = $buildProject.XML.Imports | ? {([System.IO.FileInfo] $_.Project).Name -eq "LINQTargets.targets" }
if ($imports)
{
foreach ($i in $imports)
{
$buildProject.XML.RemoveChild($i)
}
}
$project.Save() #persists the changes
$buildProject.Save()
nugetパッケージをアンインストールした後、プロジェクトを「保存」する必要があります。どうすればそれを回避できますか?アンインストール後にファイルを保存しないという選択肢がないように、クリーンな状態のままにしておく必要があります(これにより、プロジェクトファイルが非常に一貫性のない状態になります!)。