使用带有 Nuget 包的 Install.ps1 脚本,我试图将代码添加到 Global.asax.cs 文件以进行自定义。使用我的 Install.ps1 脚本,-replace 命令不起作用。事实上,我无法将任何文本分配给我正在使用 -replace 的变量 $a 并将其写入“Global.asax.cs”文件。涉及 -replace 和剪贴板的 3 行脚本确实可以在 nuget 之外与“Windows PowerShell”一起使用。我知道变量 $a 正在传递剪贴板中的内容,因为注释掉“#$customGlobalAsax.Document.Selection.Copy()”会将剪贴板中发生的任何内容写入 Global.asax.cs 文件。有什么建议么?谢谢。
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()