带条件的 Post Build 事件

Uwe*_*eim 5 msbuild visual-studio travis-ci visual-studio-2013

由于需要向 Visual Studio 2013 项目中的 Post Build 事件添加条件,我得到了以下结果:

<PropertyGroup Condition=" '$(OS)' == 'Windows_NT' ">
    <PostBuildEvent>"$(SolutionDir)..\Deploy\Build\sign-bin.cmd"</PostBuildEvent>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

我已经Condition=" '$(OS)' == 'Windows_NT' "使用文本编辑器手动将条件添加到 CSPROJ 文件中。

这按预期工作,我的解决方案在 Visual Studio 和Travis CI 中都成功构建。

什么不起作用:

在图形编辑器中编辑 Visual Studio 中的 Post Build 事件时,它似乎忽略了条件并简单地将事件存储两次:

<PropertyGroup Condition=" '$(OS)' == 'Windows_NT' ">
    <PostBuildEvent>"$(SolutionDir)..\Deploy\Build\sign-bin.cmd"</PostBuildEvent>
</PropertyGroup>
<PropertyGroup>
    <PostBuildEvent>"$(SolutionDir)..\Deploy\Build\sign-bin.cmd"</PostBuildEvent>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

我是否将条件添加到<PropertyGroup>节点或<PostBuildEvent>节点都没有关系。

在这两种情况下,节点在保存时由 Visual Studio 复制。

我的问题:

有没有机会以某种方式添加忽略 Travis 上的 Post Build 事件(这是造成这种情况的原因)的能力?

有没有机会以某种方式告诉 Visual Studio在保存时不要复制有条件的节点?