在 Visual Studio 2013 中完成整个编译后是不是可以运行构建后事件?

Posted

技术标签:

【中文标题】在 Visual Studio 2013 中完成整个编译后是不是可以运行构建后事件?【英文标题】:Is it possible to run a post build event when the whole compilation finishes in Visual Studio 2013?在 Visual Studio 2013 中完成整个编译后是否可以运行构建后事件? 【发布时间】:2015-01-21 14:19:51 【问题描述】:

我有一个包含多个项目的解决方案,我们使用 FxCop。我们希望在请求的编译完成后运行它(它可能是一个项目、一个包含多个文件夹的文件夹或整个解决方案)。

有没有办法做到这一点?我们目前每个项目都这样做,但这有一些缺点。

【问题讨论】:

是的,请看这篇文章:msdn.microsoft.com/en-us/library/dn376353.aspx 考虑为此使用 Teamcity。每次在开发人员机器上运行它都是开销。也看这里:sedodream.com/2010/10/22/MSBuildExtendingTheSolutionBuild.aspx @AuthorProxy:可能更糟糕的是,为了能够修复您会发现的大量 fxcop 问题并在每次迭代修复后重复它而必须请求构建。如果您对它不感兴趣,我们已经有一个禁用 fxcop 的构建定义。 我们使用 stylecop 并在发布到 teamcity 之前手动运行它,因为大多数时候我们知道什么时候需要重新测试,什么时候不需要。例如,在更改 javascript 或配置时,我们不想等待 stylecop 重新测试干净的解决方案。 TC 进行最终检查。一切都很好。此外,您可以将其附加到 git precommit 事件处理程序。 【参考方案1】:

是的,有一种方法可以通过在您的解决方案文件旁边放置一个文件with a specific naming pattern:after.Your solution name here.sln.targets

<!--?xml version="1.0" encoding="utf-8"?-->
<project toolsversion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <target name="AtTheStart" beforetargets="Build">
    <message text="GenerateCode target running" importance="high">
    </message>
  </target>
  <target name="AtTheEnd" aftertargets="Build">
    <message text="GenerateCode target running" importance="high">
    </message>
  </target>
</project>

但是,如果您想有效地运行 FxCop 并安装了 visualstudio,您实际上可以在构建期间通过在调用 MsBuild 时包含 /p:RunCodeAnalysis=true/p:RunCodeAnalysis=always 来激活它。这将在构建期间运行配置的规则集文件。 /p:CodeAnalysisRuleSet=PathTo.ruleset 会让你指定一个特定的规则集文件。

命令行将始终覆盖项目自己的配置。它将以最优化的方式运行。

【讨论】:

目标文件看起来很有希望。我们已经有 FxCop 10 的自定义规则,所以我们不希望将它们移植到 VS2013。 当您使用.ruleset 文件注册它们时,CodeAnalysis 也会很高兴地运行您的自定义规则。它们需要针对匹配的 Visual Studio 版本重新编译才能运行。 /p:RunCodeAnalysis=true【参考方案2】:

我会将 FxCop 项目集(在所有项目中包含所有 dll)并在所有项目都在 VS 中构建后调用它。

【讨论】:

以上是关于在 Visual Studio 2013 中完成整个编译后是不是可以运行构建后事件?的主要内容,如果未能解决你的问题,请参考以下文章

在 Visual Studio 2013 中完成整个编译后是不是可以运行构建后事件?

安装Visual Studio2013

Visual Studio C++ 多行注释

如何在 Visual Studio 2013 中查看代码审查注释

visual studio 2013 快捷键大全VS2013常用快捷键

Visual Studio 2013进行python开发