Visual studio 是否在Visual Studio中继承生成后事件?

Visual studio 是否在Visual Studio中继承生成后事件?,visual-studio,visual-studio-2012,post-build-event,Visual Studio,Visual Studio 2012,Post Build Event,我在VisualStudio中有一个解决方案,其中有一个共享属性表,其中包含一个生成后事件命令(bar),每个项目都需要执行该命令 Foo.props>通用属性>生成事件>生成后事件> 命令行=bar 然后如何指定其他特定于项目的生成后事件?通常的“从父项或项目默认值继承”已丢失,我不希望必须手动将条添加到每个项目中,因为这会使维护变得困难。基于此,这似乎是不可能的。你刚才发布了你的问题;你找到可行的替代方案了吗 反馈后编辑: 另一种可能比较混乱的方法是将命令定义为宏: 酒吧 然后可以将$

我在VisualStudio中有一个解决方案,其中有一个共享属性表,其中包含一个生成后事件命令(
bar
),每个项目都需要执行该命令

Foo.props>通用属性>生成事件>生成后事件> 命令行=bar

然后如何指定其他特定于项目的生成后事件?通常的“从父项或项目默认值继承”已丢失,我不希望必须手动将
条添加到每个项目中,因为这会使维护变得困难。

基于此,这似乎是不可能的。你刚才发布了你的问题;你找到可行的替代方案了吗


反馈后编辑: 另一种可能比较混乱的方法是将命令定义为宏:


酒吧
然后可以将
$(CommandX)
添加到项目的后期生成命令或其他属性页。如果
$(CommandX)
不存在,它将被悄悄地忽略

如果将此宏添加到另一个属性表,则必须导入
CommandX
属性表,以便
$(CommandX)
继承一个值:




在学习了更多关于构建过程的知识之后,我想推荐使用;特别是,可能会提供最可行的解决方案。

在找到此解决方案并查看其他帖子后。我发现很难理解为什么VC++团队会忽略这个特性

在查看属性页的宏之后,可以使用%(command)宏/环境变量包含以前属性中的命令。这适用于所有生成事件

属性表1.props

copy some.dll $(OutputPath)
%(Command)
属性表2.props

copy other.dll $(OutputPath)
%(Command)

结果是所有命令都被执行。

由于一些生成后事件没有从中定义的属性表继承,我询问了duck并在这里登陆

我有个好消息: 自Visual Studio 2013以来,预生成和后生成事件命令行都有一个“从父级或项目默认值继承”选项,该选项添加属性页中的所有事件


(使用Visual Studio 2013和2017 Professional进行了测试)

否,根据我的问题,我已经求助于分别手动维护每个项目。我想到的唯一解决方案(但没有尝试实现)是通过脚本设计我自己的继承结构——让每个项目调用与其生成后事件相同的脚本,但将项目名称作为变量传递,并让脚本酌情运行其他命令。笨重,但至少它将维护减少到一个文件。或者,让每个项目调用自己的脚本(通过使用MSVC的内置宏从依赖于项目的位置调用脚本),并让脚本递归地从其继承的项目调用脚本。这两种方法的主要问题是继承结构本身必须在两个位置(属性表和脚本)进行更新,否则它们会失去同步。这很好,但不能解决问题。一旦将自定义生成后事件添加到项目中,它就会替换继承的值。运行自定义生成后步骤而不是继承的步骤。最初的问题是询问如何在继承的步骤之外运行自定义的后期生成步骤。对不起,我对“通常的”从父级继承或项目默认值“丢失”作出了反应。