我创建了一个从.Net扩展DatabaseContext的包。所以我试图让我的项目在安装软件包时使用新的DatabaseContext。所以我使用了.pp文件,但它取代了所有内容。 (见下图)
但我只想将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文件,我该怎么做?
答案 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
}