如何从预提交的git hook调用/运行fxcop分析器? C#

问题描述 投票:1回答:1

我是Fxcop分析器样式检查器。我想从预提交运行/调用Fxcop,因此,如果Fxcop发现任何错误或字段,则Git Hook预提交应停止提交过程。我从没在Bash编程过,这是我第一次使用git hook。

任何我可以用来设置的建议都很棒。

c# git githooks fxcop pre-commit-hook
1个回答
0
投票

为了将FxCop作为pre-commit钩子运行,您需要安装FxCop as nuget package,然后像从命令行中那样使用MSBuild来构建项目。当MSBuild检测到任何错误时,它将以非零的退出代码退出。 [git检测到pre-commit钩子以非零退出代码退出时,将阻止提交通过。

根据Microsoft's documentation,这是您可以使用的命令行:

msbuild myproject.csproj /target:rebuild /verbosity:minimal

Git即使在Windows上也使用bash执行钩子文件,因此命令行语法与常规cmd有所不同。您可以尝试以下作为pre-commit挂钩文件:

#!/bin/sh

'/c/Program Files (x86)/Microsoft Visual Studio/2019/Professional/MSBuild/Current/Bin/MSBuild.exe' ConsoleApp1.csproj /target:rebuild /verbosity:minimal

[假设ConsoleApp1.csproj位于本地git存储库文件夹的根目录下,而我正在使用Visual Studio 2019(16.4.5),因此您可能需要根据环境进行调整。

它应该适用于.Net或.Net Core项目。

请注意,如果仅有警告,则MSBuild不会以非零的退出代码退出。如果您希望某些规则失败,则可以配置FxCop severity,或者将MSBuildwarnAsError开关一起使用。

此外,根据构建所需的时间,您可能需要考虑使用请求请求的构建管道,而不是pre-commit钩子。

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