Nuget パッケージで Install.ps1 スクリプトを使用して、カスタマイズの目的で Global.asax.cs ファイルにコードを追加しようとしています。私の Install.ps1 スクリプトでは、-replace コマンドが機能しません。実際、-replace で使用している変数 $a にテキストを割り当てて、「Global.asax.cs」ファイルに書き込むことはできません。-replace とクリップボードを含む 3 行のスクリプトは、nuget の外部の "Windows PowerShell" で動作します。「#$customGlobalAsax.Document.Selection.Copy()」をコメントアウトすると、クリップボードにあるものは何でも Global.asax.cs ファイルに書き込まれるため、変数 $a がクリップボードからコンテンツを渡していることはわかっています。助言がありますか?ありがとう。
param($installPath, $toolsPath, $package, $project)
$customGlobalAsax = $project.ProjectItems | ForEach-Object { $_.ProjectItems } | where { $_.Name -eq "Global.asax.cs" }
$customGlobalAsax.Open()
$customGlobalAsax.Document.Activate()
$customGlobalAsax.Document.Selection.SelectAll()
$customGlobalAsax.Document.Selection.Copy()
$a = [System.Windows.Forms.Clipboard]::GetText()
$a = $a -replace "using Company.Web.Mvc.ViewBase;","using Company.Web.Mvc.ViewBase;`r`nusing Company.Web.Address;"
[System.Windows.Forms.Clipboard]::SetText($a)
$customGlobalAsax.Document.Selection.Delete()
$customGlobalAsax.Document.Selection.Paste()