当我清理项目时,不会调用AfterClean目标

时间:2013-09-10 16:03:46

标签: visual-studio-2012

我在我的.csproj文件中添加了'BeforeClean'和'AfterClean'目标,最初设计用于删除正常构建路径之外的某些位置的构建工件。

当我对项目进行“清理”时,我可以说文件没有被删除;所以我愚蠢的行动只是吐出一条消息。与delete命令一样,不会调用message命令(我希望在'Output'窗口中看到该消息)。

我在网上找到的唯一相关建议是确保在导入Microsoft.CSharp.targets文件后执行目标定义。我包含了我的.csproj文件的剪辑,其中包含足够的详细信息,以显示我的目标defs与导入相对的位置。

据我所知,我做的一切都是正确的;为什么我的目标不会被调用?

提前致谢。

[更新和仅供参考:我将重要性从'正常'更改为'高'时能够触发目标。]

    <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
        <PropertyGroup>
            <PreBuildEvent>
            </PreBuildEvent>
        </PropertyGroup>
    <Target Name="BeforeClean">
        <Message Text="Hello Clean World!" Importance="normal" ContinueOnError="true"/>
    </Target>
    <Target Name="AfterClean">
        <Message Text="Goodbye Clean World!" Importance="normal" ContinueOnError="true"/>
    </Target>
</Project>

1 个答案:

答案 0 :(得分:3)

它实际上是被调用的,你只是看不到它。使用/ verbosity运行msbuild.exe:normal。或者更改IDE设置:工具+选项,项目和解决方案,构建和运行。或者将重要性属性更改为high