gpt4 book ai didi

c# - 在构建时如何设置 Gendarme 与 Teamcity 一起运行?

转载 作者:行者123 更新时间:2023-11-30 17:05:34 24 4
gpt4 key购买 nike

我已经设置了一个 Teamcity 服务器,用于开始使用持续集成并进行每日构建,以及在检测到 VCS checkin 时。我和我的团队现在正在开发一款视频游戏,我们使用 Unity 作为游戏引擎,使用 C# 作为编程语言。我在我们的项目中手动使用了宪兵,并且可以完全利用它提供的好处。所以我试图让它作为 Teamcity 的构建步骤运行,但我似乎可以弄清楚如何让它工作。有人对这种工具组合有一些经验吗?任何分享的经验都会受到赞赏。

谢谢。

最佳答案

好吧,最后我确实找到了解决方案,我将其张贴在这里,以便任何感兴趣的人都可以看到。

Teamcity 有一个命令行构建步骤,可用于在构建过程中使用 Gendarme(对于我将在构建步骤的工作区属性中编写的自定义脚本,您需要将每个脚本放在其中.exe 的是)。这是它所需的控制台命令:


gendarme.exe --v --html Your\Path\To\Save\Report\GendarmeReport.html --severity all --confidence all "Path/To/Your/Project/Library/ScriptAssemblies/Assembly-CSharp.dll"”路径/To/Your/Project/Library/ScriptAssemblies/Assembly-CSharp-firstpass.dll""Path/To/Your/Project/Library/ScriptAssemblies/Assembly-UnityScript-firstpass.dll"

可能,如果您在执行 Unity 构建之后运行此构建步骤,Unity 将清除此处的程序集,因此您需要在 Gendarme 步骤之前执行另一个控制台命令构建步骤,即:

Unity.exe -batchmode -nographics -quit

这将使 unity 重新生成 Library 文件夹内容,然后运行 ​​Gendarme 构建步骤将执行 trcik。最后,Gendarme 有时会在完成报告时抛出 1 退出代码,但是报告已经成功并且每个规则检查也都成功了,所以我认为这可能是一个小错误,根据 manpages宪兵的此代码在

时返回

The runner execution was successful but either some defects where found or no assembly was specified.

如果程序集被正确检查,因为您有重新生成它们的步骤,那么您可以告诉 Teamcity 忽略退出代码 1,您可以执行此操作以进入构建失败 Teamcity 的条件并取消选中选项 build process exit code is not zero 就这样。

希望这可以帮助其他对类似的东西感兴趣的人。

关于c# - 在构建时如何设置 Gendarme 与 Teamcity 一起运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16442111/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com