visual-studio-2010 - Visual Studio 项目中 AfterBuild 任务的顺序......?

标签 visual-studio-2010 msbuild msbuild-task visual-studio-project

我在我的 Visual Studio 项目中定义了几个具有不同条件的 AfterBuild - 任务:

<Target Name="AfterBuild" Condition="'$(Configuration)'=='FinalBuilder'">
    <Message Importance="high" Text="--- AfterBuild for FinalBuilder ---" />
</Target>
<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
    <Message Importance="high" Text="--- AfterBuild for MvcBuildViews ---" />
</Target>

但如果条件匹配,则只执行最后一个。如果我选择 FinalBuilder-Configuration,则 AfterBuild 任务将被忽略且不执行。如果我更改项目文件中目标的顺序(Condition="'$(Configuration)'=='FinalBuilder'"作为最后一个),FinalBuilder-Configuration 的 AfterBuild 将被执行,但 MvcBuildViews 的一个被忽略。

目标的顺序重要吗?是否只考虑最后一个 AfterBuild 任务?或者如何定义具有不同条件的不同 AfterBuild 任务?

谢谢

康拉德

最佳答案

唯一的第二个被执行,因为它被重新定义。见 MSDN (在项目文件章节中声明目标)。

您应该在项目文件中只使用一个 AfterBuild 目标,如下所示:

<Target Name="AfterBuild" >
    <Message Condition="'$(MvcBuildViews)'=='true'" Importance="high" Text="--- AfterBuild for MvcBuildViews ---" />
    <Message Condition="'$(Configuration)'=='FinalBuilder'" Importance="high" Text="--- AfterBuild for FinalBuilder ---" />
</Target> 

编辑:
或使用 CallTarget任务:
<Target Name="AfterBuild" >
    <CallTarget Condition="'$(MvcBuildViews)'=='true'" Targets="MvcBuildTarget" />
    <CallTarget Condition="'$(Configuration)'=='FinalBuilder'" Targets="FinalBuilderTarget" />
</Target> 

<Target Name="MvcBuildTarget">
    <Message Importance="high" Text="--- AfterBuild for MvcBuildViews ---" />
</Target> 

<Target Name="FinalBuilderTarget" >
    <Message Importance="high" Text="--- AfterBuild for FinalBuilder ---" />
</Target> 

关于visual-studio-2010 - Visual Studio 项目中 AfterBuild 任务的顺序......?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8709946/

相关文章:

azure-devops - DevOps Pipeline - 在构建步骤中找不到包

.net - 即使所有新发布者都有签名证书,未知发布者警告是否真的会出现?

c# - 添加 View 上下文菜单项消失了

c# - MSBuild 无法在 Azure 云服务 csdef 文件中找到目录

MSBUILD 无法强制包目标的 PackageLocation

.net - 如何使用 MSBuild 搜索目录结构并获取 .sln 文件名

msbuild - 使用 MSBuild FileUpdate 任务仅更改 AssemblyInfo.cs 中的修订号

visual-studio-2010 - VS2010 - 用于负载测试的数据库单元测试

visual-studio - 如何让 Visual Studio 2010 自动创建可折叠区域

msbuild - 如何在 MSBuild 中默认任务参数