You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Visual Studio 2013中C#项目编译失败时如何跳过生成后事件?

解决VS2013 C#项目编译失败时跳过生成后事件的问题

兄弟,你遇到的这个情况确实挺闹心的——编译失败了还白跑一遍耗时的转译器,太浪费时间了。其实在VS2013的C#项目里,是可以让生成后事件只在编译成功时才执行的,下面给你两种靠谱的解决方法:

方法一:在生成后事件命令行里添加条件判断

打开你的项目属性,找到「生成事件」→「生成后事件命令行」,把原来的转译器命令改成带条件的格式:

if "%BuildSuccess%"=="True" (
  你的转译器完整命令
)

这里的%BuildSuccess%是VS提供的内置宏,编译成功时会被替换成True,失败时则是False,这样就能确保只有编译通过才会触发转译器。

方法二:直接编辑.csproj项目文件(更可靠)

如果第一种方法没生效,或者你想更精准控制,直接修改项目文件是最稳妥的:

  1. 右键项目→「卸载项目」,然后右键→「编辑xxx.csproj」
  2. 在文件里找到AfterBuild目标(如果没有就自己添加),给它加上条件判断:
<Target Name="AfterBuild" Condition="'$(BuildSuccess)' == 'True'">
  <Exec Command="你的转译器完整命令" />
</Target>
  1. 保存文件,重新加载项目。这样每次只有当编译成功后,这个AfterBuild目标才会执行转译器。

为啥你现在的设置会失败时还跑?

大概率是因为你的生成后事件没有添加任何条件判断,虽然理论上C#项目的生成后事件默认应该在成功后执行,但可能因为某些自定义配置或者VS2013的小细节,导致它跳过了成功检查。加上上面的条件就能彻底解决这个问题。

内容的提问来源于stack exchange,提问作者superjoebob

火山引擎 最新活动