我想检测所有源代码文件中的特定单词或模式。对于前。如果我想限制 DateTime.Now 在项目中使用,但如果某些团队成员在源代码中使用了它,我希望构建操作失败。
我不知道正确的方法是什么,但我可以使用 VS 预构建事件来实现同样的目的吗?如果没有,那么有人可以指导我走上正确的道路来满足我的要求吗?
您可以通过在
PowerShell MyPowerShellScript.ps1
中输入类似PreBuildEvent
的命令来执行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 退出并且构建失败。
希望能帮到你。
这是一种手动方法,但您可以使用
Ctrl+Shift+F
进行全局搜索吗
并将您的正则表达式或如示例中的 DateTime.Now 放在搜索栏中,然后更改您需要的任何内容