有没有办法暂时禁用构建前事件和后期构建事件?
即没有构建事件的构建(这需要花费一些时间,但并不总是很重要)
此刻我正在进行缩小,还有其他一些事情正在发生,我并不总是需要这样做。
答案 0 :(得分:11)
禁用构建事件的最简单方法是传递空值:
msbuild your.sln /p:PreBuildEvent=;PostBuildEvent=
答案 1 :(得分:8)
像最小化这样的东西只对Release版本很重要。所以你可以这样跳过它:
if "$(ConfigurationName)" == "Debug" goto skip
; stuff here...
:skip
您可以使用其他一些宏,点击编辑按钮和宏>>按钮看到它们。也可以测试环境变量,使用%varname%。但要设置起来要困难得多。
答案 2 :(得分:6)
我也和msbuild foo.vcxproj /p:PreBuildEvent= /p:PostBuildEvent=
玩了一点,但对我来说它没有用,可能是因为我使用自定义道具文件。
我发现的工作是/p:PostBuildEventUseInBuild=false
答案 3 :(得分:3)
检查您的帖子构建事件设置。在“构建事件”选项卡上,将“运行构建后事件”组合框值更改为“当构建更新项目输出时”。只有在更新输出程序集时才会执行构建后事件。
OR
使用MSBuild命令构建解决方案(这对多解决方案项目很有用)。 在PC上的某处创建“DisableBuildEvents.msbuild”文件。 DisableBuildEvents.msbuild 内容:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="PostBuildEvent"/>
<Target Name="PreBuildEvent" />
</Project>
在命令行中设置 CustomAfterMicrosoftCommonTargets 属性执行MsBuild:
MSBuild.exe YourSolution.sln /t:Build p:CustomAfterMicrosoftCommonTargets="c:\DisableBuildEvents.msbuild"
注意:CustomAfterMicrosoftCommonTargets值应为完整路径名。