使用PowerShell重命名类

时间:2014-05-12 07:06:08

标签: powershell nuget-package

我创建了一个从.Net扩展DatabaseContext的包。所以我试图让我的项目在安装软件包时使用新的DatabaseContext。所以我使用了.pp文件,但它取代了所有内容。 (见下图)

enter image description here

但我只想将IdentityDbContext的所有课程用法重命名为IdentityDbContextExtDbConfiguraion。我想我应该用powershell脚本实现这一点,但我找不到任何可以帮助我进一步的教程。 (我只能找到文件重命名示例)。

有没有办法在PowerShell中实现这一目标,还是有更好的选择?

谢谢!

我尝试过类似的事情:

ForEach ($item in Get-ChildItem -recurse) { 
$item.Name >> "test.txt"
#text = text + $item.Name + ", "
} 
#$path = ".\Models\IdentityModels.cs"
#$word = "IdentityDbContext<"
#$replacement = "IdentityDbContextExtDbConfiguration<"

#$text = get-content $path
#$newText =  $text -replace $word,$replacement
#$newText > $path

我想找到并替换项目中的每个.cs文件,我该怎么做?

1 个答案:

答案 0 :(得分:2)

如果您可以使用IdentityDbContext<替换IdentityDbContextExtDbConfiguration<的所有实例,则可以使用PowerShell轻松实现此目的。只需使用如下脚本:

foreach ($file in Get-ChildItem -Recurse -Filter *.cs)
{
    $filename = $file.FullName; 
    $content = Get-Content $filename -Raw -Encoding UTF8
    $replacedContent = $content -replace 'IdentityDbContext<','IdentityDbContextExtDbConfiguration<' 
    $replacedContent | Set-Content $filename -Encoding UTF8
}