【问题标题】:How to call/run fxcop analyzer from pre-commit git hook? C#如何从 pre-commit git hook 调用/运行 fxcop 分析器? C#
【发布时间】:2020-04-08 16:28:46
【问题描述】:

我是 Fxcop Analyzer 样式检查员。 我想从预提交运行/调用 Fxcop,所以如果 Fxcop 发现任何错误或字段,那么 Git Hook 预提交应该停止提交过程。
我从来没有在 Bash 中编程过,这是我第一次使用 git hook。

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

【问题讨论】:

    标签: c# git githooks fxcop pre-commit-hook


    【解决方案1】:

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

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

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

    即使在 Windows 上,Git 也使用 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 挂钩。

    【讨论】:

      猜你喜欢
      • 2015-08-19
      • 1970-01-01
      • 1970-01-01
      • 2019-01-23
      • 1970-01-01
      • 2013-02-19
      • 1970-01-01
      • 1970-01-01
      • 2011-12-16
      相关资源
      最近更新 更多