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

qv7cva1a  于 2023-10-23  发布在  其他
关注(0)|答案(2)|浏览(126)

已关闭,此问题需要更focused。它目前不接受回答。
**想改善这个问题吗?**更新问题,使其只关注editing this post的一个问题。

12天前关闭
Improve this question
我想在所有源代码文件中检测特定的单词或模式。例如,如果我想限制DateTime.Now在项目中使用,但如果某个团队成员在源代码中使用了它,我想使构建操作失败。
我不知道什么是正确的方法来做这件事,但我可以使用VS预构建事件同样?如果没有,那么有人可以指导我正确的道路,以满足我的要求?

wz1wpwve

wz1wpwve1#

您可以通过在PreBuildEvent中输入类似PowerShell MyPowerShellScript.ps1的命令来执行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,构建将失败。

希望能帮到你。

wa7juj8i

wa7juj8i2#

这是一个手动的方法,但是你可以使用Ctrl+Shift+F来进行全局搜索,并将regex或DateTime放在你的示例中。

相关问题