nuget パッケージを介して読み込んだファイルの名前を変更しようとしています。
次のようにファイルを取得できることはわかっています。
$f = $project.ProjectItems | ForEach-Object { $_.ProjectItems } | where { $_.Name -eq "MyFile.cs.custom" }
また、次のようにそのファイルを削除できることも知っています。
$f.Delete()
そのファイルの名前を変更するための構文を探しています。私はちょうどやってみました:
$project.ProjectItems | ForEach { $_.ProjectItems } | Where { $_.Name -eq "MyFile.cs.custom" } | Foreach {Rename-Item $_.Name ($_.FileNames -replace "\.custom", "")}
そして、それはうまくいきませんでした
install.ps1 ファイル全体は次のとおりです。
param($installPath, $toolsPath, $package, $project)
#save the project file first - this commits the changes made by nuget before this script runs.
$project.Save()
$project.ProjectItems | ForEach { $_.ProjectItems } | Where { $_.Name -eq "MyFile.cs.custom" } | Foreach {Rename-Item $_.Name ($_.FileNames -replace "\.custom", "")}
$project.Save()
csprojファイルのプロジェクトスタートアップオブジェクトをプロジェクトにまだ存在しないクラスに変更するだけで、これを回避することになりました。