在 Visual Studio 中检测源代码文件中的特定单词或模式?

问题描述 投票:0回答:2

我想检测所有源代码文件中的特定单词或模式。对于前。如果我想限制 DateTime.Now 在项目中使用,但如果某些团队成员在源代码中使用了它,我希望构建操作失败。

我不知道正确的方法是什么,但我可以使用 VS 预构建事件来实现同样的目的吗?如果没有,那么有人可以指导我走上正确的道路来满足我的要求吗?

c# visual-studio visual-studio-extensions
2个回答
0
投票

您可以通过在

PowerShell MyPowerShellScript.ps1
中输入类似
PreBuildEvent
的命令来执行PowerShell脚本。脚本包括在所有源代码文件中搜索特定单词或模式。

请按照以下步骤操作。(示例)

  1. Powershell 脚本
$results = Get-ChildItem -Path {your project path} -Recurse | Select-String -Pattern "DateTime.Now";
if([string]::IsNullOrEmpty($results)){
  Write-Host "not found specific word DateTime.Now"
}else{
  Write-Host " found specific word DateTime.Now"
  #other than zero (0)
  exit 1
}

注意

使用非零 (0) 的代码退出事件操作。零退出代码表示操作成功;任何其他退出代码都被视为错误。

2.输入类似

PowerShell MyPowerShellScript.ps1
的命令。 在“项目”菜单上 -> 单击“{ProjectName} 属性”(或从“解决方案资源管理器”中按 Alt+Enter)-> 选择“生成”>“事件”。

Visual Studio 通过添加 PreBuildtarget 和必要的 MSBuild 代码来修改您的项目文件,以执行您提供的步骤。

<Target Name="PreBuild" BeforeTargets="PreBuildEvent">
  <Exec Command="PowerShell {your project path}\pw.ps1" />
</Target>

3.构建项目并观察输出窗口。如果它在源代码文件中找到特定的世界(DateTime.Now),则脚本将以代码 1 退出并且构建失败。

希望能帮到你。


-1
投票

这是一种手动方法,但您可以使用

Ctrl+Shift+F
进行全局搜索吗 并将您的正则表达式或如示例中的 DateTime.Now 放在搜索栏中,然后更改您需要的任何内容

© www.soinside.com 2019 - 2024. All rights reserved.